算法练习——寻找数组的中心索引

2021年1月28日LeetCode每日一题为724. 寻找数组的中心索引,这是一道简单的题,这里的中间索引指其左右两边的和相等,因此我们用两个数保存两边的和,默认左边的和为0,右边的和为整个数组的和。然后遍历数组,将右边的和减去当前遍历的数,判断左右值是否相等,相等则说明当前的i就是中心索引,否则左边的和要加上当前下标,方便下一次的判断。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public int pivotIndex(int[] nums) {
int n = nums.length;
int leftSum = 0, rightSum = 0;
for (int i = 0; i < n; i++) {
rightSum += nums[i];
}
for (int i = 0; i < n; i++) {
rightSum -= nums[i];
if (rightSum == leftSum) {
return i;
}
leftSum += nums[i];
}
return -1;
}
}