前缀和思路
设数组为nums,数组的全部元素的和为 total,元素个数为i,左边为sum,右边为total-sum-nums[i],2*sum+nums[i]=total。
当中心索引左侧或右侧没有元素时,即为零个项相加,即为空和。在程序设计中我们约定空和是零。上代码
class Solution {
public int findMiddleIndex(int[] nums) {
int total = Arrays.stream(nums).sum();
int sum = 0;
for (int i = 0; i < nums.length; ++i) {
if (2 * sum + nums[i] == total) {
return i;
}
sum += nums[i];
}
return -1;
}
}