• [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)
  • 相关阅读:
    java对redis的基本操作(一)
    Android RelativeLayout 属性
    查看jdk的位数
    Java简单文件传输 socket简单文件传输示例
    Java使用socket实现两人聊天对话
    Java观察者设计模式
    Java装饰设计模式的例子
    php邮件发送 phpmailer
    php smarty 缓存和配置文件的基本使用方法
    php smarty insert用法
  • 原文地址:https://www.cnblogs.com/jcliBlogger/p/4952704.html
Copyright © 2020-2023  润新知