美文网首页
寻找数组的中心索引【LeetCode】

寻找数组的中心索引【LeetCode】

作者: 朱哥 | 来源:发表于2021-04-06 14:10 被阅读0次

给你一个整数数组 nums,请编写一个能够返回数组 “中心下标” 的方法。

数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。

如果数组不存在中心下标,返回 -1 。如果数组有多个中心下标,应该返回最靠近左边的那一个。

注意:中心下标可能出现在数组的两端。

链接:https://leetcode-cn.com/leetbook/read/array-and-string/yf47s/
来源:力扣(LeetCode)

class Solution {
    public int pivotIndex(int[] nums) {
        int sumT = 0, sumL = 0;
        // 计算数组总和
        for(int i = 0;i<nums.length;i++) {
            sumT+=nums[i];
        }
        // 如果总和减去第一个值为0,则说明下标0处就是中心索引
        if(sumT-nums[0] == 0){
            return 0;
        }
        for(int i = 0; i < nums.length;i++) {
            // 如果左边sum结果等于总和-左边sum-nums[i](当前中心点)的值,则说明下标i就是中心索引
            if(i != 0 && sumL == (sumT - sumL - nums[i])) {
                return i;
            }
            sumL += nums[i];
        }
        return -1;
    }
}

相关文章

网友评论

      本文标题:寻找数组的中心索引【LeetCode】

      本文链接:https://www.haomeiwen.com/subject/kdbskltx.html