寻找数组中心索引
要求
- 给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。
- 我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。
- 如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。
思路
计算总和,移动数组下标,将下标左边(不包括当前下标)的值总和与右边的值总和相比较
示例
class Solution {
public:
int pivotIndex(vector<int>& nums) {
if(nums.size()==0)return -1;
int sum=0,sumL=0,sumR=0;
for(int i:nums){
sum+=i;
}
for(int i=0;i<nums.size();i++){
if(i!=0)sumL+=nums[i-1];
sumR=sum-sumL-nums[i];
if((sumL)==sumR)return i;
}
return -1;
}
};