307 區域和檢索 陣列可修改

2021-10-10 17:25:50 字數 907 閱讀 1599

題目描述:

給定乙個整數陣列 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 ...