class Solution {
public:
int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
int n = gas.size(), sum = 0, Min = INT_MAX, index;
for(int i = 0; i < n; ++i){
//sum是汽油-消耗,
sum += (gas[i] - cost[i]);
if(sum < Min){
Min = sum;
//标记最后一个消耗>汽油量的站的下一个站,作为起点
index = (i + 1) % n;
}
}
//sum < 0 说明总的汽油量小于消耗量,开不完全程
return sum >= 0 ? index : -1;
}
};
Accepted
36/36 cases passed (76 ms)
Your runtime beats 28.65 % of cpp submissions
Your memory usage beats 25.62 % of cpp submissions (67.7 MB)