【数组】寻找数组的中心索引

题目:

解答:

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 };

猜你喜欢

转载自www.cnblogs.com/ocpc/p/12922508.html
今日推荐