Leetcode 每日一题
题目链接:134. 加油站
难度: 中等
解题思路: gas和cost的差值表示从一个点到另一个点后所剩的油量。我们计算所剩油量的前缀和,并记录它的最小值,减到最小值后下一个肯定是增加的,并且行驶过程中增加的量是最多的。前缀和的最后一个值大于等于0那么他肯定可以跑完,否则油量不够。
题解:
class Solution:
def canCompleteCircuit(self, gas: List[int], cost: List[int]) -> int:
remain, min_remain = 0, 0x3f3f3f3f
res = -1
for i in range(len(gas)):
remain += gas[i] - cost[i]
if remain < min_remain:
min_remain = remain
res = i + 1
if remain >= 0:
return res % len(gas)
else:
return -1