zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    HTTP协议
    在项目中使用模块
    将封装模块发布到NPM注册表
    package.json文件常用指令说明
    npm常用命令
    分享wifi热点
    Globals模块常用的方法和属性
    WebStorm2016.1.1永久破解
    Module
    解释器模式(Interpreter Pattern)
  • 原文地址:https://www.cnblogs.com/h-hkai/p/10386163.html
Copyright © 2011-2022 走看看