classSolution{ publicintcanCompleteCircuit(int[] gas, int[] cost){ //首先将两个加起来,看看是不是大于0,如果大于0表示有机会跑到 int sum =0; //min记录行驶过程中油箱最少,如果小于0则换节点 int min =0; for (int i = 0;i<gas.length;i++){ sum +=gas[i]-cost[i]; min = Math.min(min,sum); } if(sum<0){ return -1; } if(min>=0){ return0;//起点就可以 } //开始 for(int i = gas.length-1;i>=0;i--){ int tmp = gas[i]-cost[i]; min +=tmp; //如果min此时大于0,就是起点,因为结果的唯一性 if(min>=0){ return i; } } return -1; } }