🌗 724. 寻找数组的中心下标

吞佛童子2022年6月20日
  • algorithm
  • array
  • 前缀和
小于 1 分钟

🌗 724. 寻找数组的中心下标

难度: 🌗

问题描述

img.png


解法

class Solution {
    public int pivotIndex(int[] nums) {
        // 思路:
        // 前缀和,res 下标处 leftSum == rightSum
        // 遍历 2 遍,添加虚拟节点
        int len = nums.length;
        // 特殊情况特判
        if(len == 1) {
            return 0;
        }
        int[] left = new int[len];
        int sum = 0;
        for(int i = 1; i < len; i ++) {
            sum += nums[i - 1];
            left[i] = sum;
        }
        int[] right = new int[len];
        sum = 0;
        for(int j = len - 2; j >= 0; j --) {
            sum += nums[j + 1];
            right[j] = sum;
        }
        // 最后一次遍历
        for(int i = 0; i < len; i ++) {
            if(left[i] == right[i]) {
                return i;
            }
        }
        return -1;
    }
}

输出

img_1.png

上次编辑于: 2022/6/20 下午8:24:47
贡献者: liuxianzhishou