題目描述:
代碼實現:
- 貪心算法,設置一個sum來計算gas是否大於等於cost,再設置一個curSum來判斷從哪裏爲起始點,並設置爲startIndex,最終得出結果。
- 時間複雜度:O(n)
/**
* @param {number[]} gas
* @param {number[]} cost
* @return {number}
*/
var canCompleteCircuit = function(gas, cost) {
var sum = 0, curSum = 0, startIndex = 0
for (var i = 0; i < gas.length; i++ ) {
sum += gas[i] - cost[i]
curSum += gas[i] - cost[i]
if (curSum < 0) {
curSum = 0
startIndex = i + 1
}
}
return sum >= 0 ? startIndex : -1
};