給定乙個整數陣列 nums,求出陣列從索引 i 到 j (i ≤ j) 範圍內元素的總和,包含 i, j 兩點。
示例:
給定 nums = [-2, 0, 3, -5, 2, -1],求和函式為 sumrange()說明:sumrange(0, 2) -> 1
sumrange(2, 5) -> -1
sumrange(0, 5) -> -3
你可以假設陣列不可變。這道題演算法沒啥的,但是告訴我們乙個道理,在力扣上刷題不 要 使 用 全 局 變 量!!!會多次呼叫 sumrange 方法。
否則可能會出現執行沒錯提交出錯的情況!
python code
class
numarray
:def
__init__
(self, nums:
list):
ifnot
len(nums)
:return
self.sums =
0])for i in
range(1
,len
(nums)):
1]+ nums[i]
)def
sumrange
(self, i:
int, j:
int)
->
int:
if i ==0:
return self.sums[j]
return self.sums[j]
- self.sums[i -
1]
c++ codeclass numarray
intsumrange
(int i,
int j)
};
區域和檢索 陣列不可變
注意需要多次呼叫sumrange方法,所以不能簡單的進行區間遍歷求和,動態規劃一下,記錄一下 每個區間的和,然後根據索引直接求出結果。class numarray sums new int length sums 0 nums 0 for int i 1 i length i public int ...
區域和檢索 陣列不可變
給定乙個整數陣列 nums,求出陣列從索引 i 到 j i j 範圍內元素的總和,包含 i,j 兩點。示例 給定 nums 2,0,3,5,2,1 求和函式為 sumrange sumrange 0,2 1 sumrange 2,5 1 sumrange 0,5 3 說明 你可以假設陣列不可變。會多...
區域和檢索 陣列不可變
給定乙個整數陣列 nums,求出陣列從索引 i 到 j i j 範圍內元素的總和,包含 i,j 兩點。給定 nums 2,0,3,5,2,1 求和函式為 sumrange sumrange 0,2 1 sumrange 2,5 1 sumrange 0,5 3 你可以假設陣列不可變。會多次呼叫 su...