这个题主要注意俩点:
抓住如果有解, 一定是唯一解 的约束条件
另外如果总油量小于总消耗的油量表明一定无法走完全程
充分说明了题目中给的条件的重要性:
代码:
class Solution {
public:
int canCompleteCircuit(vector<int> &gas, vector<int> &cost) {
int sum=0,total=0,j=-1;
for(int i=0;i<gas.size();i++){
sum+=gas[i]-cost[i];
total+=gas[i]-cost[i];
if(sum<0){
j=i;
sum=0;
}
}
return total>=0?j+1:-1;
}
};