There are N gas stations along a circular route, where the amount of gas at station i is gas[i]
.
You have a car with an unlimited gas tank and 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 if you can travel around the circuit once, otherwise return -1.
Note:
The solution is guaranteed to be unique.
1、如果A不能到达B,那么AB之间的点也到不了B。(这里B是A第一个不能到达的点)
2、如果油量的和大于消耗的和,肯定有一个解
代码如下:
public class Solution {
public int canCompleteCircuit(int[] gas, int[] cost) {
int total = 0, tank = 0, index = 0;
for (int i = 0; i < gas.length; i++) {
tank = tank - cost[i] + gas[i];
if (tank < 0) {
index = i + 1;
total += tank;
tank = 0;
}
}
return total + tank >= 0? index: -1;
}
}