Python作業(Leetcode 134)
阿新 • • 發佈:2018-12-31
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
結果如下: