Open Ray-56 opened 3 years ago
/**
* @param {number[]} gas
* @param {number[]} cost
* @return {number}
*/
var canCompleteCircuit = function(gas, cost) {
const len = gas.length;
let start = 0;
while (start < len) {
let sumOfGas = 0;
let sumOfCost = 0;
let count = 0;
while (count < len) {
let j = (start + count) % len; // 加油站为环形
sumOfGas += gas[j];
sumOfCost += cost[j];
if (sumOfGas < sumOfCost) break;
count++;
}
// 环绕一圈
if (count === len) return start;
// 无法环绕一圈,将起始点置为下一个站点
start = start + count + 1;
}
return -1;
};
134. 加油站
在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。
你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。
如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。
说明:
示例1:
示例2: