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

一、题目

leetcode:724. 寻找数组的中心下标_第1张图片

二、函数原型

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;
}

你可能感兴趣的:(leetcode刷题训练营,leetcode,算法,数据结构)