思路:
使用前缀和算法,记录0~i 下标之间的数的总和,则pre[i]-pre[j] 的值就为i~j位之间的数的总和
这里只要处理一下中心下标为0的情况即可
代码实现
class Solution {
public int pivotIndex(int[] nums) {
int sum=0;
int[] presum=new int[nums.length];
presum[0]=nums[0];
for(int i=1;i<nums.length;i++){
presum[i]=presum[i-1]+nums[i];
}
int sum1=0;
int sum2=0;
for(int i=0;i<nums.length;i++){
if(i==0){
sum1=0;
sum2=presum[nums.length-1]-presum[i];
}else{
sum1=presum[i]-nums[i];
sum2=presum[nums.length-1]-presum[i];
}
if(sum1==sum2){
return i;
}
}
return -1;
}
}