当mainTank还剩5升及以上的油,直接一次性减5升,距离加50,然后看additionalTank是否还有油,若有减1,然后mainTank加1;若mainTank小于5升油,则直接减完,距离加mainTank*10
时间复杂度:O(n)
空间复杂度:O(1)
public int distanceTraveled(int mainTank, int additionalTank) {
int res=0;
while(mainTank>0){
if(mainTank>=5){
res+=50;
mainTank-=5;
if(additionalTank>0){
additionalTank-=1;
mainTank+=1;
}
}else{
res+=mainTank*10;
mainTank=0;
}
}
return res;
}
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~