🌗 303. 区域和检索 - 数组不可变

吞佛童子2022年10月10日
  • algorithm
  • Array
  • 前缀和
小于 1 分钟

🌗 303. 区域和检索 - 数组不可变

难度: 🌗

问题描述

img_17.png


解法

class NumArray {
    // 思路:
    // 前缀和 - arr[i] = [0, i - 1] 的 sum
    int[] arr;

    public NumArray(int[] nums) {
        int len = nums.length;
        arr = new int[len + 1];
        for(int i = 0; i < len; i ++) {
            arr[i + 1] = arr[i] + nums[i];
        }
    }
    
    public int sumRange(int left, int right) {
        // [0, right] - [0, left - 1] = arr[right + 1] - arr[left]
        return arr[right + 1] - arr[left];
    }
}

/**
 * Your NumArray object will be instantiated and called as such:
 * NumArray obj = new NumArray(nums);
 * int param_1 = obj.sumRange(left,right);
 */

输出

img_16.png

上次编辑于: 2022/10/10 下午8:43:48
贡献者: liuxianzhishou