思路:
创建两个变量sum和sum1,sum代表左边元素的和,sum1代表右边元素的和
然后假设从数组下标0开始,一直到最后一个作为中心下标
如果sum=sum1,返回此时的中心下标
如果所有下标循环完了,发现没有return,那么就返回-1
答案:
int pivotIndex(int* nums, int numsSize)
{
int cen=0;
for(cen=0;cen<numsSize;cen++) //从下标0到最后一个下标
{
int sum=0,sum1=0;
for(int i=0;i<cen;i++) //计算左边元素的和
{
sum+=nums[i];
}
for(int i=cen+1;i<numsSize;i++) //计算右边元素的和
{
sum1+=nums[i];
}
if(sum==sum1) //如果相等
{
return cen;
}
sum=0; //清零,为下一个下标做准备
sum1=0; //清零,为下一个下标做准备
}
return -1; //没有中心下标
}
但官方题解更好,用了2*sum+num[i]=total这个公式来判断是否是中心下标