LeetCode 724 寻找数组中心索引 题解

LeetCode 724 寻找数组中心索引 题解

给你一个整数数组 nums,请编写一个能够返回数组 “中心索引” 的方法。
数组 中心索引 是数组的一个索引,其左侧所有元素相加的和等于右侧所有元素相加的和。
如果数组不存在中心索引,返回 -1 。如果数组有多个中心索引,应该返回最靠近左边的那一个。
注意:中心索引可能出现在数组的两端。
示例 1:
输入:nums = [1, 7, 3, 6, 5, 6]
输出:3
解释:
中心索引是 3 。
左侧数之和 (1 + 7 + 3 = 11),
右侧数之和 (5 + 6 = 11) ,二者相等。

代码:

class Solution {
          
   
    public int pivotIndex(int[] nums) {
          
   
        if(nums == null || nums.length == 0){
          
   
            return -1;
        }
        //jdk流的用法;也可以便利一遍数组求和
        int total = Arrays.stream(nums).sum();
        int leftSum = 0;
        //前缀和思想
        for(int i = 0; i < nums.length; i++){
          
   
            if(leftSum == total - nums[i] - leftSum){
          
   //右边的数字的和:total-nums[i]- leftSum,如果也等于leftSum就满足要求了
                return i;
            }
            leftSum += nums[i];
        }
        return -1;
    }
}
经验分享 程序员 微信小程序 职场和发展