给你一个整数数组 nums,请编写一个能够返回数组 “中心下标” 的方法。
数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。
如果数组不存在中心下标,返回 -1 。如果数组有多个中心下标,应该返回最靠近左边的那一个。
注意:中心下标可能出现在数组的两端。
链接:https://leetcode-cn.com/leetbook/read/array-and-string/yf47s/
来源:力扣(LeetCode)
class Solution {
public int pivotIndex(int[] nums) {
int sumT = 0, sumL = 0;
// 计算数组总和
for(int i = 0;i<nums.length;i++) {
sumT+=nums[i];
}
// 如果总和减去第一个值为0,则说明下标0处就是中心索引
if(sumT-nums[0] == 0){
return 0;
}
for(int i = 0; i < nums.length;i++) {
// 如果左边sum结果等于总和-左边sum-nums[i](当前中心点)的值,则说明下标i就是中心索引
if(i != 0 && sumL == (sumT - sumL - nums[i])) {
return i;
}
sumL += nums[i];
}
return -1;
}
}