求数组各个位置的前面的累加和,这样计算两个位置之间的累加和就不用再次循环了,只需要两个位置之间的值相减就可以了。
class Solution {
public int pivotIndex(int[] nums) {
if(nums.length<1) return -1;
if(nums.length==1) return 0;
for(int i = 1;i < nums.length;i++){
nums[i] += nums[i-1];
}
if(nums[nums.length-1]-nums[0]==0) return 0;
for(int j = 1;j<nums.length-1;j++){
if(nums[j-1]==nums[nums.length-1]-nums[j]){
return j;
}
}
if(nums[nums.length-2]==0) return nums.length-1;
return -1;
}
}