【刷题】724. 寻找数组的中心索引——给你一个整数数组 nums,请编写一个能够返回数组 “中心索引” 的方法。 数组 中心索引 是数组的一个索引,其左侧所有元素相加的和等于右侧所有元素相加的和。

题目: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;
}

猜你喜欢

转载自blog.csdn.net/m0_46613023/article/details/113918346