/* * 134.Gas Station * 2016-5-22 by Mingyang * 主要破题点在于,要保证可以绕地球一圈的关键就是所有的gas和所有的cost相减的时候 * 最终的结果是大于0的,那么这样的话,我们就可以最后来判断到底有没有值 * 而对于start index的判断就是遇到过不去的点就跳到下一个作为起始点 */ public int canCompleteCircuit(int[] gas, int[] cost) { int len=gas.length; int sum=0; int accumulate=0; int start=0; for(int i=0;i<len;i++){ if(accumulate+gas[i]-cost[i]<0){ start=i+1; accumulate=0; }else{ accumulate=accumulate+ gas[i]-cost[i]; } sum+=gas[i]-cost[i]; } if(sum<0) return -1; return start; }