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

		}
};