题目:
解答:
sumleft + num[i] + sumright = totalsum
sumleft = sumright
===> 2 * sumleft = totalsum - num[i]
1 class Solution { 2 public: 3 4 // sumleft + nums[i] + sumleft = totalsum 5 // 2 * sumleft = totalsum - nums[i] 6 int pivotIndex(vector<int>& nums) 7 { 8 int leftsum = 0; 9 int totalsum = 0; 10 11 // 1. sum(nums) 12 for (int i = 0; i < nums.size(); i++) 13 { 14 totalsum += nums[i]; 15 } 16 17 // 2. 2 *leftsum = totalsum - nums[i] 18 for (int i = 0; i < nums.size(); i++) 19 { 20 if (2 * leftsum == totalsum - nums[i]) 21 { 22 return i; 23 } 24 25 leftsum += nums[i]; 26 } 27 28 return -1; 29 30 } 31 };
原文:https://www.cnblogs.com/ocpc/p/12922508.html