zoukankan      html  css  js  c++  java
  • [LeetCode] Range Sum Query

    The idea is fairly straightforward: create an array accu that stores the accumulated sum fornums such that accu[i] = nums[0] + ... + nums[i] in the initializer of NumArray. Then just return accu[j + 1] - accu[i] in sumRange. You may try the example in the problem statement to convince yourself of this idea.

    The code is as follows.


    C++

     1 class NumArray {
     2 public:
     3     NumArray(vector<int> &nums) {
     4         accu.push_back(0);
     5         for (int num : nums)
     6             accu.push_back(accu.back() + num);
     7     }
     8 
     9     int sumRange(int i, int j) {
    10         return accu[j + 1] - accu[i];
    11     }
    12 private:
    13     vector<int> accu;
    14 };
    15 
    16 
    17 // Your NumArray object will be instantiated and called as such:
    18 // NumArray numArray(nums);
    19 // numArray.sumRange(0, 1);
    20 // numArray.sumRange(1, 2); 

    Python

    class NumArray(object):
        def __init__(self, nums):
            """
            initialize your data structure here.
            :type nums: List[int]
            """
            self.accu = [0]
            for num in nums:
                self.accu += self.accu[-1] + num,
    
        def sumRange(self, i, j):
            """
            sum of elements nums[i..j], inclusive.
            :type i: int
            :type j: int
            :rtype: int 
            """
            return self.accu[j + 1] - self.accu[i]
    
    
    # Your NumArray object will be instantiated and called as such:
    # numArray = NumArray(nums)
    # numArray.sumRange(0, 1)
    # numArray.sumRange(1, 2)
  • 相关阅读:
    python05-循环
    python03-列表
    python03 input
    python02-灭霸的选择
    python学习小记01--萌新的进化
    Linux—-软件安装
    linux-认识与分析日志
    Esxi遇到问题汇总。
    xx
    Pramp mock interview (4th practice): Matrix Spiral Print
  • 原文地址:https://www.cnblogs.com/jcliBlogger/p/4952704.html
Copyright © 2011-2022 走看看