1 public int canCompleteCircuit(int[] gas, int[] cost) {
 2         int begin=0;
 3         int sum=0;
 4         int i=0;
 5         int n=0;
 6         int end=0;
 7         int count=gas.length;
 8         while(n<count-1){
 9             sum+=gas[i]-cost[i];
10             if(sum>=0){
11                 end++;
12                 i=end;
13             }else{
14                 begin--;
15                 if(begin<0){
16                     begin=count-1;
17                 }
18                 i=begin;
19             }
20             n++;
21         }
22         sum+=gas[i]-cost[i];
23         if(sum>=0)
24             return begin;
25         else
26             return -1;
27     }