29 lines
678 B
JavaScript
29 lines
678 B
JavaScript
/**
|
|
* https://leetcode.cn/problems/gas-station/?envType=study-plan-v2&envId=top-interview-150
|
|
* @param {number[]} gas
|
|
* @param {number[]} cost
|
|
* @return {number}
|
|
*/
|
|
const canCompleteCircuit = function (gas, cost) {
|
|
let totalGas = 0; let
|
|
totalCost = 0;
|
|
let currentGas = 0;
|
|
let start = 0;
|
|
|
|
for (let i = 0; i < gas.length; i++) {
|
|
totalGas += gas[i];
|
|
totalCost += cost[i];
|
|
|
|
currentGas += gas[i] - cost[i];
|
|
|
|
// 如果油量不足,更新起点为下一个加油站
|
|
if (currentGas < 0) {
|
|
start = i + 1;
|
|
currentGas = 0;
|
|
}
|
|
}
|
|
|
|
// 如果总油量小于总油耗,无法完成一圈
|
|
return totalGas < totalCost ? -1 : start;
|
|
};
|