zoukankan      html  css  js  c++  java
  • leetcode 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.

    前缀和的应用,很简单。

    class NumArray {
    public:
        int n;
        vector<int> s;
        NumArray(vector<int> &nums) {
            n = nums.size();
            if(n==0)return;
            
            s.push_back(nums[0]);
            for(int i=1;i<n;i++){
                s.push_back(s.back()+nums[i]);
            }
        }
    
        int sumRange(int i, int j) {
            if(i>j)return 0;
            if(i==0) return s[j];
            return s[j]-s[i-1];
        }
    };
    
    
    // Your NumArray object will be instantiated and called as such:
    // NumArray numArray(nums);
    // numArray.sumRange(0, 1);
    // numArray.sumRange(1, 2);
  • 相关阅读:
    Linux unalias命令 取消别名
    linux cp 拷贝文件或目录
    POJ 1850
    POJ 1844
    POJ 1852
    POJ 1837
    POJ 1833
    POJ 1804
    POJ 1789
    POJ 1781
  • 原文地址:https://www.cnblogs.com/zywscq/p/5408424.html
Copyright © 2011-2022 走看看