class Solution {
public:
int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
int n = gas.size();
//从i到j不可达 可以推出从它们之间的任意一个点出发也不可达 因为从i出发时,到中间节点还有可能有剩余的油
for(int i = 0, j; i < n; i += j + 1){
int gas_left = 0 ;
for(j = 0; j < n; j++){
int k = (i + j) % n;
gas_left += gas[k] - cost[k];
if(gas_left < 0) break;
}
if(j == n) return i;
}
return -1;
}
};
134. Gas Station
最新推荐文章于 2022-01-25 22:34:26 发布