• 303. Range Sum Query


    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.

    Example:

    Given nums = [-2, 0, 3, -5, 2, -1]
    
    sumRange(0, 2) -> 1
    sumRange(2, 5) -> -1
    sumRange(0, 5) -> -3
    

    Note:

    1. You may assume that the array does not change.
    2. There are many calls to sumRange function.

    Approach #1:  My code. [C++]

    class NumArray {
    public:
        NumArray(vector<int> nums) {
            nums_ = nums;
        }
        
        int sumRange(int i, int j) {
            int ans = 0;
            for (int k = i; k <= j; ++k)
                ans += nums_[k];
            return ans;
        }
        
    private:
        vector<int> nums_;
    };
    
    /**
     * Your NumArray object will be instantiated and called as such:
     * NumArray obj = new NumArray(nums);
     * int param_1 = obj.sumRange(i,j);
     */
    

      

    Approach #2 (Caching) [Java]

    private int[] sum;
    
    public NumArray(int[] nums) {
        sum = new int[nums.length + 1];
        for (int i = 0; i < nums.length; i++) {
            sum[i + 1] = sum[i] + nums[i];
        }
    }
    
    public int sumRange(int i, int j) {
        return sum[j + 1] - sum[i];
    }
    

      

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    Alpha冲刺
    Alpha冲刺
    Alpha冲刺
    Alpha冲刺
    抽奖系统(记一次未完成的教训)
    Alpha冲刺
    Alpha冲刺
    Alpha冲刺 (2/10)
    Alpha 冲刺 (1/10)
    软工 团队第三次作业
  • 原文地址:https://www.cnblogs.com/h-hkai/p/10386163.html
Copyright © 2020-2023  润新知