1. GasStation (#134)
There are N gas stations along a circularroute, where the amount of gas at station i is gas[i].
You have a car with an unlimited gas tankand it costs cost[i] of gas to travel from station i to its next station (i+1).You begin the journey with an empty tank at one of the gas stations.
Return the starting gas station's index ifyou can travel around the circuit once, otherwise return -1.
Note: The solution is guaranteed to be unique.
题目来源:
https://leetcode.com/problems/gas-station/description/
解题思路:
1. 解是唯一的,要遍历该环形加油站可以从数组0号开始遍历。
2. 设定到达i站时剩余油量为current,如果current加上该油站的油还是小于该站到下一站的油,那么更新起始的下标index为当前i
3. 设定所有站点剩余油量之和为sums,若sums>=0,则可以遍历完。
代码如下:
class Solution(object):
def canCompleteCircuit(self,gas,cost):
sums=0
current=0
index=0
if sum(gas)<sum(cost):
return -1
for i in range(len(cost)):
if(current+gas[i])<cost[i]:
index=i+1
current=0
else:
current+=gas[i]-cost[i]
sums+=gas[i]-cost[i]
if sums>=0:
return index
else:
return -1
结果如下: