跳到主要内容

2739.总行驶距离

链接:2739.总行驶距离
难度:Easy
标签:数学、模拟
简介:卡车有两个油箱。给你两个整数,mainTank 表示主油箱中的燃料(以升为单位),additionalTank 表示副油箱中的燃料(以升为单位)。该卡车每耗费 1 升燃料都可以行驶 10 km。每当主油箱使用了 5 升燃料时,如果副油箱至少有 1 升燃料,则会将 1 升燃料从副油箱转移到主油箱。返回卡车可以行驶的最大距离。

题解 1 - cpp

  • 编辑时间:2023-06-18
  • 执行用时:8ms
  • 内存消耗:5.9MB
  • 编程语言:cpp
  • 解法介绍:遍历。
class Solution {
public:
int distanceTraveled(int mainTank, int additionalTank) {
int used = 0, res = 0;
while (mainTank) {
used++;
mainTank--;
res += 10;
if (used % 5 == 0 && additionalTank) {
mainTank++;
additionalTank--;
}
}
return res;
}
};

题解 2 - python

  • 编辑时间:2023-06-18
  • 执行用时:104ms
  • 内存消耗:16.2MB
  • 编程语言:python
  • 解法介绍:同上。
class Solution:
def distanceTraveled(self, mainTank: int, additionalTank: int) -> int:
used = res = 0
while mainTank:
used+=1
mainTank-=1
res+=10
if used % 5 == 0 and additionalTank:
mainTank+=1
additionalTank-=1
return res

题解 3 - rust

  • 编辑时间:2023-06-18
  • 执行用时:4ms
  • 内存消耗:2MB
  • 编程语言:rust
  • 解法介绍:同上。
impl Solution {
pub fn distance_traveled(mut main_tank: i32, mut additional_tank: i32) -> i32 {
let mut used = 0;
let mut res = 0;
while main_tank != 0 {
used += 1;
main_tank -= 1;
res += 10;
if used % 5 == 0 && additional_tank != 0 {
main_tank += 1;
additional_tank -= 1;
}
}
res
}
}

题解 4 - python

  • 编辑时间:2024-04-25
  • 执行用时:58ms
  • 内存消耗:16.45MB
  • 编程语言:python
  • 解法介绍:遍历。
class Solution:
def distanceTraveled(self, mainTank: int, additionalTank: int) -> int:
res = 0
while mainTank >= 5:
res += 5 * 10
mainTank -= 5
if additionalTank:
mainTank += 1
additionalTank -= 1
return res + mainTank * 10