美文网首页
寻找数组的中心索引【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