有2个东西在前面明确一下:
- 很明显的如果
sum(gas)<sum( cost)则不能跑完。 - 如果
sum(gas)>=sum(cost),则存在相应的起始点跑完一圈。
具体2怎么证明,用数学公式,我还真想不出来。 - 如果在某一节点,没有油了,则在该节点下一节点重新开始。
class Solution:
def canCompleteCircuit(self, gas, cost):
"""
:type gas: List[int]
:type cost: List[int]
:rtype: int
"""
if sum(gas)<=sum(cost):
return -1
# 剩余油量
tank=0
# 起始位置
start=0
for x in range(len(gas)):
tank+=(gas[x]-cost[x])
# 转移到下一节点的条件
if tank<0:
start=i+1
tank=0
return start
本文探讨了在给定每站的汽油量和消耗量情况下,寻找能够完成一圈旅行的起点的问题。首先验证总汽油量是否大于等于总消耗量,然后通过遍历每个加油站,确定可行的起始点。如果在某一点油量不足,则从下一站重新开始计算。
338

被折叠的 条评论
为什么被折叠?



