leetcode:724. 寻找数组的中心下标

2024-01-07 18:26:33

一、题目

二、函数原型

int pivotIndex(int* nums, int numsSize)?

三、思路

首先要理解正确中心下标,中心下标左侧元素之和等于右侧元素之和,比较时是不包含中心下标所指元素的。

先将数组和求出来记为sum,再遍历数组,遍历到某一下标处时记其左侧元素之和为leftsum,则右侧元素之和就为sum - leftsum - 当前位置元素。比较左、右侧元素和,如果相等则当前位置为中心下标。若全部遍历完后,仍没有找到中心下标则返回-1。

四、代码

int pivotIndex(int* nums, int numsSize) {
    int sum = 0;
    for (int i = 0; i < numsSize; i++)//数组求和
    {
        sum += nums[i];
    }

    int leftsum = 0;//中心下标左侧元素和
    for (int i = 0; i < numsSize; i++)//遍历数组,寻找中心下标
    {
        
        if (sum - leftsum - nums[i] == leftsum)
            return i;
        leftsum += nums[i];
    }
    return -1;
}

文章来源:https://blog.csdn.net/2301_76197086/article/details/135398853
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。