链接: https://oj.leetcode.com/problems/gas-station/
网上的思路:
如果 从i不能到 j 则从i~j之间的任何一个出发都不能到j
如果 总的油量小与总的消耗量,则无论从哪出发,都不能到达
class Solution
{
public:
int canCompleteCircuit(vector<int> &gas,vector<int> &cost)
{
int ans=0;
int n=gas.size();
int tg=0,tc=0,tank=0;
for(int i=0,k=0;k<n;(++i)%=n,k++)
{
tank+=gas[i];
tank-=cost[i];
if(tank<0)
{
ans=(i+1)%n;
tank=0;
}
tg+=gas[i];
tc+=cost[i];
}
return tg>=tc?ans:-1;
}
};