O(n), 参考官方解释,注意边界值
int canCompleteCircuit(int* gas, int gasSize, int* cost, int costSize){
int currSum = 0, totalSum = 0 , startIdx = 0 ;
for(int idx=0; idx<gasSize; idx++){
int diff=gas[idx]-cost[idx];
totalSum+=diff;
currSum+=diff;
if(currSum<0){
startIdx=idx+1;
currSum=0;
}
}
return totalSum>=0?startIdx:-1;
}