Day22 leetcode 区域和检索

Day 22

题目:区域和检索

leetcode链接:区域和检索
要点:前缀和

1、Java

class NumArray {
    // 前缀和数组
    private int[] preSum;
    /* 输入一个数组,构造前缀和 */
    public NumArray(int[] nums) {
        // preSum[0] = 0,便于计算累加和
        preSum = new int[nums.length + 1];
        for(int i = 1; i < preSum.length; i++){
            // 计算 nums 的累加和
            preSum[i] = preSum[i - 1] + nums[i - 1];
        }
    }
    /* 查询闭区间 [left, right] 的累加和 */
    public int sumRange(int left, int right) {
        return preSum[right + 1] - preSum[left];
    }
}

2、python

class NumArray:

    def __init__(self, nums: List[int]):
        self.preSum = [0]
        _preSum = self.preSum
        for num in nums:
            _preSum.append(_preSum[-1] + num)


    def sumRange(self, left: int, right: int) -> int:
        _preSum = self.preSum
        return _preSum[right + 1] - _preSum[left]

你可能感兴趣的:(leetcode,leetcode,算法)