Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.
给定整数数组nums,找到索引i和j(i≤j)之间的元素之和。
Example:
Given nums = [-2, 0, 3, -5, 2, -1]
sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3
例: 给定nums = [-2,0,3,-5,2,-1]
sumRange(0,2) - > 1 sumRange(2,5) - > -1 sumRange(0,5) - > -3
Note:
- You may assume that the array does not change.
- There are many calls to sumRange function.
注意: 您可以假设阵列不会更改。 sumRange函数有很多调用。
python实践
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
class NumArray:
def __init__(self, nums):
self.sums =[0]*(len(nums)+1)
# 求解第一个元素到该元素的和
for i in range(len(nums)):
self.sums[i+1] = self.sums[i] + nums[i]
def sumRange(self, i: int, j: int) -> int:
# Your NumArray object will be instantiated and called as such:
# obj = NumArray(nums)
# param_1 = obj.sumRange(i,j)
return self.sums[j+1] - self.sums[i]
if __name__ == '__main__':
nums = [-2, 0, 3, -5, 2, -1]
print(NumArray(nums).sumRange(0, 2))
参考网址
-
https://blog.csdn.net/coder_orz/article/details/51720978
在初始化的时候,将从第一个元素开始到当前位置的所有元素的和求出来,存放到数组sums中。那么每次求一个范围的和时,只要计算两个下标处和的差即可。