在類的建構函式中給乙個整數陣列, 實現兩個方法query(start, end)
和modify(index, value)
:
樣例1
輸入:
[1,2,7,8,5]
[query(0,2),modify(0,4),query(0,1),modify(2,1),query(2,4)]
輸出: [10,6,14]
說明:給定陣列 a = [1,2,7,8,5].
在query(0, 2)後, 1 + 2 + 7 = 10,
在modify(0, 4)後, 將 a[0] 修改為 4, a = [4,2,7,8,5].
在query(0, 1)後, 4 + 2 = 6.
在modify(2, 1)後, 將 a[2] 修改為 1,a = [4,2,1,8,5].
after query(2, 4), 1 + 8 + 5 = 14.
樣例2
輸入:
[1,2,3,4,5]
[query(0,0),query(1,2),quert(3,4)]
輸出: [1,5,9]
說明:1 = 1
2 + 3 = 5
4 + 5 = 9
query
和modify
的時間複雜度需要為o(logn).
在做此題前,建議先完成以下三題:
輸入測試資料 (每行乙個引數)如何理解測試資料?
class solution }}
/** @param start: an integer
* @param end: an integer
* @return: the sum from start to end
*/long long query(int start, int end)
/** @param index: an integer
* @param value: an integer
* @return: nothing
*/void modify(int index, int value)
}};
區間求和II
已知 在類的建構函式中給乙個整數陣列,實現兩個方法 query start,end 和 modify index,value 思路 這題非常奇怪,因為難度係數是最高的,但是類結構是完整的,上述兩個函式本身實現也是非常簡單的,我能想到唯一的點就是如何在多個函式之間共享資料,但似乎也算不上難點,而且之間...
LINTCODE 區間求和II
lintcode 區間求和ii 思路 線段樹的構造,線段樹的查詢,線段樹的修改的結合版,三個程式拼接再一起就是這個題目的解法了,和統計前面比自己小的數的個數一樣 class solution private segmenttreenode root public you may need to us...
範圍求和 II
給定乙個初始元素全部為 0,大小為 m n 的矩陣 m 以及在 m 上的一系列更新操作。操作用二維陣列表示,其中的每個操作用乙個含有兩個正整數 a 和 b 的陣列表示,含義是將所有符合 0 i a 以及 0 j b 的元素 m i j 的值都增加 1。在執行給定的一系列操作後,你需要返回矩陣中含有最...