在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i]。
你有一辆油箱容量无限的的汽车,从第 i 个加油站前往第 i+1 个加油站需要消耗汽油 cost[i]。你从其中一个加油站出发,开始时油箱为空。
如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回-1。
注意:
给定的数据可保证答案是唯一的。
详见:https://leetcode.com/problems/gas-station/description/
class Solution {
public:
int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
if(gas.size()==0||cost.size()==0||gas.size()!=cost.size())
{
return -1;
}
int total=0;
int sum=0;
int start=0;
for(int i=0;i<gas.size();++i)
{
total+=gas[i]-cost[i];
sum+=gas[i]-cost[i];
if(sum<0)
{
start=i+1;
sum=0;
}
}
return total<0?-1:start;
}
};
参考:https://www.cnblogs.com/grandyang/p/4266812.html