链接: 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; } };