给定一个整数数组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
注意:
假设数组不可变
多次调用sumRange()方法
1:列表,利用sum()方法
class NumArray(object):
def __init__(self, nums):
"""
:type nums: List[int]
"""
self.nums = nums
def sumRange(self, i, j):
"""
:type i: int
:type j: int
:rtype: int
"""
return sum(self.nums[i:j+1])
2:self.nums列表中存放nums列表中累加的值
class NumArray(object):
def __init__(self, nums):
"""
:type nums: List[int]
"""
self.nums = [0] #多添加一个0,作为开始
for i in nums:
self.nums.append(self.nums[-1] + i)
def sumRange(self, i, j):
"""
:type i: int
:type j: int
:rtype: int
"""
if i < 0 or j >= len(self.nums) - 1:
return 0
return self.nums[j + 1] - self.nums[i]
算法题来自:https://leetcode-cn.com/problems/range-sum-query-immutable/description/