class Solution {
public int pivotIndex(int[] nums) {
//[-1,-1,-1,0,1,1]
if(nums.length == 0)
return -1;
if( nums.length == 1 || nums.length == 2 && nums[1] == 0)
return 0;
int rsum = 0;
for(int i=2;i<nums.length;i++)
rsum += nums[i];
if((rsum+nums[1]) == 0)
return 0;
int lsum = nums[0];
for(int i=1;i<nums.length-1;i++)
{
if(rsum == lsum)
return i;
else
{
rsum -= nums[i+1];
lsum += nums[i];
}
}
if(lsum == 0)
return nums.length-1;
return -1;
}
}
从左边开始,依次判断两边的和是否相等
注意一点,如果中心索引为数组第一个元素或者最后一个元素时,要加以判断。如果数组为空,则要输出-1。