134. 加油站(中等)
思路:不排序直接暴力,不过每次不成功,都会从下一个无法到达的站点开始,时间复杂度实际是O(n)
class Solution {
public int canCompleteCircuit(int[] gas, int[] cost) {
int len = gas.length;
for(int i=0;i<len;i++){
int currentGas = gas[i] - cost[i];
if(currentGas < 0)continue;
int it = (i+1)%len;
boolean flag = true;
for(;it!=i;it=(it+1)%len){
currentGas = currentGas - cost[it] + gas[it];
if(currentGas < 0){
flag = false;
break;
}
}
if(flag)return i;
if(i<it)i = it;
else return -1;
}
return -1;
}
}