这题跟前面做过的一题挺像
1 class Solution { 2 public: 3 int canCompleteCircuit(vector<int> &gas, vector<int> &cost) { 4 // IMPORTANT: Please reset any member data you declared, as 5 // the same Solution instance will be reused for each test case. 6 int leftsum, sum, beg; 7 beg = sum = leftsum = 0; 8 for (int i = 0; i < gas.size(); i++) { 9 sum += gas[i] - cost[i]; 10 if (sum < 0) { 11 leftsum += sum; 12 sum = 0; 13 beg = i + 1; 14 } 15 } 16 if (sum + leftsum >= 0) return beg; 17 else return -1; 18 } 19 };
C#
1 public class Solution { 2 public int CanCompleteCircuit(int[] gas, int[] cost) { 3 int leftSum = 0, sum = 0, beg = 0; 4 for (int i = 0; i < gas.Length; i++) { 5 sum += gas[i] - cost[i]; 6 if (sum < 0) { 7 leftSum += sum; 8 sum = 0; 9 beg = i + 1; 10 } 11 } 12 if (sum + leftSum >= 0) return beg; 13 else return -1; 14 } 15 }