區間求和 I LintCode

2021-08-08 04:04:32 字數 879 閱讀 3315

給定乙個整數陣列(下標由 0 到 n-1,其中 n 表示陣列的規模),以及乙個查詢列表。每乙個查詢列表有兩個整數 [start, end] 。 對於每個查詢,計算出陣列中從下標 start 到 end 之間的數的總和,並返回在結果列表中。

注意事項:

在做此題前,建議先完成以下三題:線段樹的構造, 線段樹的查詢,以及線段樹的修改。

樣例:

對於陣列 [1,2,7,8,5],查詢[(1,2),(0,4),(2,4)], 返回 [9,23,20]

挑戰 :

o(logn) time for each query

#ifndef c206_h

#define c206_h

#include

#include

using

namespace

std;

class interval

};class segmentnode

};class solution

return v;

}segmentnode * build(vector

&a, int start, int end)

node->left = build(a, start, (start + end)/2);

node->right = build(a, (start + end)/2 + 1, end);

node->sum = node->left->sum + node->right->sum;

return node;

}long

long query(segmentnode *root, int start, int end)

};#endif

區間求和II

已知 在類的建構函式中給乙個整數陣列,實現兩個方法 query start,end 和 modify index,value 思路 這題非常奇怪,因為難度係數是最高的,但是類結構是完整的,上述兩個函式本身實現也是非常簡單的,我能想到唯一的點就是如何在多個函式之間共享資料,但似乎也算不上難點,而且之間...

區間求和 II

在類的建構函式中給乙個整數陣列,實現兩個方法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,...

PYTHON 區間求和

題目如下 本題思路一定不能像題目描述的那樣,申請乙個1e18大的列表 陣列 因為你會發現 longlongtime 之後 根本申請不出來這麼大的陣列 那麼我們得換一種思路了 區間劃分,即 算出 l3,r3 分別與 l1,r1 l2,r2 的交集len1和len2,然後直接求得結果為len1a len...