题目:724. 寻找数组的中心索引
给你一个整数数组 nums,请编写一个能够返回数组 “中心索引” 的方法。
数组 中心索引 是数组的一个索引,其左侧所有元素相加的和等于右侧所有元素相加的和。
如果数组不存在中心索引,返回 -1 。如果数组有多个中心索引,应该返回最靠近左边的那一个。
注意:中心索引可能出现在数组的两端。
解答
int pivotIndex(int* nums, int numsSize)
{
// num计算索引左侧元素相加之和
int num=0;
// sum计算整个数组元素之和
int sum=0;
int i=0;
for(i=0;i<numsSize;i++)
{
sum+=nums[i];
}
// 从第一个元素作为索引进行判断
for(i=0;i<numsSize;i++)
{
if(sum-nums[i]==num*2)
{
return i;
}
// 如果第i个不是中心索引,累加前i个元素
// 开始下一个循环判断第i+1个是否为中心索引
num+=nums[i];
}
// 不存在中心索引,返回-1
return -1;
}