題目描述:
給定乙個整數陣列 nums,求出陣列從索引 i 到 j (i ≤ j) 範圍內元素的總和,包含 i, j 兩點。
update(i, val) 函式可以通過將下標為 i 的數值更新為 val,從而對數列進行修改。
示例:
given nums = [1, 3, 5]
sumrange(0, 2) -> 9
update(1, 2)
sumrange(0, 2) -> 8
說明:
陣列僅可以在 update 函式下進行修改。
你可以假設 update 函式與 sumrange 函式的呼叫次數是均勻分布的。
方法1:
主要思路:
(1)類似積分影象,只不過是一維的;
(2)主要的變化點是需要考慮更新的情形,故需要儲存原始的元素,來實現後續的更新操作;
class
numarray
}//更新陣列中的某個元素時,同時更新累加和
void
update
(int i,
int val)
}int
sumrange
(int i,
int j)};
/** * your numarray object will be instantiated and called as such:
* numarray* obj = new numarray(nums);
* obj->update(i,val);
* int param_2 = obj->sumrange(i,j);
*/
307 區域和檢索 陣列可修改
超時 leetcode 307.range sum query mutable 使用sum陣列的思路 tle class numarray sum new int nums.length 1 sum 0 0 for int i 1 i nums.length i public int sumrang...
307 區域和檢索 陣列可修改
給定乙個整數陣列 nums,求出陣列從索引 i 到 j i j 範圍內元素的總和,包含 i,j 兩點。update i,val 函式可以通過將下標為 i 的數值更新為 val,從而對數列進行修改。示例 given nums 1,3,5 sumrange 0,2 9 update 1,2 sumran...
LeetCode 307 區域和檢索
給定乙個整數陣列 nums,求出陣列從索引 i 到 j i j 範圍內元素的總和,包含 i,j 兩點。update i,val 函式可以通過將下標為 i 的數值更新為 val,從而對數列進行修改。利用樹狀陣列實現。from typing import class numarray def init ...