想要找出就数组的中心下标,主要有两种方法:
1.将数组分为两部分,使中心下标对应的数左右两边值的和相等
2.先计算总和,然后遍历计算left总和,如果left总和×2加当前值等于总和,就返回当前值
方法一.
int pivotIndex(int* nums, int numsSize)
{
int i,j,k,sum1=0,sum2=0;
for(i=1;i<numsSize;i++)
{
for(j=0;j<=(i-1);j++)
sum1+=nums[j];
for(k=(numsSize-1);k>i;k--)
sum2+=nums[k];
if(sum1==sum2)
return i;
return -1;
}
}
方法二.
int pivotIndex(int *nums, int numsSize)
{
int i, totalNums = 0, leftNums = 0;
for (i = 0; i < numsSize; i++)
totalNums += nums[i] ;
for (i = 0; i < numsSize; i++)
{
if (leftNums * 2 + nums[i] == totalNums)
return i;
leftNums += nums[i];
}
return -1;
}