思路:
创建两个变量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这个公式来判断是否是中心下标