/*思路:
gas = [1,2,3,4,5]
cost = [3,4,5,1,2]
如果 cost的和大于gas的和 那无论如何也不可能走一个循环;
如果 cost[起点] +...+ cost[i] > gas[start] +...+ gas[i] 那无论如何 i也不可能为起点
所以 只要满足这两个条件就能找到起点;
*/
class Solution {
public int canCompleteCircuit(int[] gas, int[] cost) {
if(gas == null || cost == null || gas.length == 0 || cost.length == 0) return -1;
int sumGas = 0;
int sumCost = 0;
int start = 0;
for(int i = 0; i < gas.length; i++) {
sumGas += gas[i] - cost[i];
sumCost += gas[i] - cost[i];
if(sumGas < 0) {
start = i + 1;
sumGas = 0;
}
}
if(sumCost >= 0) {
return start;
}
return -1;
}
}
Gas Station leecode java 走地牙
最新推荐文章于 2021-12-04 17:06:56 发布