1. 程式人生 > >Python作業(Leetcode 134)

Python作業(Leetcode 134)

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


結果如下: