線段樹查詢 II

2021-07-26 06:09:18 字數 706 閱讀 2094

對於乙個陣列,我們可以對其建立一棵 線段樹, 每個結點儲存乙個額外的值 count 來代表這個結點所指代的陣列區間內的元素個數. (陣列中並不一定每個位置上都有元素)

實現乙個 query 的方法,該方法接受三個引數 root, start 和 end, 分別代表線段樹的根節點和需要查詢的區間,找到陣列中在區間[start, end]內的元素個數。

[0, 3, count=3]

/ \

[0,1,count=1] [2,3,count=2]

/ \ / \

[0,0,count=1] [1,1,count=0] [2,2,count=1], [3,3,count=1]

query(1, 1), return 0

query(1, 2), return 1

query(2, 3), return 2

性質:父親的區間是[a,b],(c=(a+b)/2)左兒子的區間是[a,c],右兒子的區間是[c+1,b],線段樹需要的空間為陣列大小的四倍

/**

* definition of segmenttreenode:

* public class segmenttreenode

* }*/public

class

solution

}

線段樹查詢 II

對於乙個陣列,我們可以對其建立一棵線段樹,每個結點儲存乙個額外的值count來代表這個結點所指代的陣列區間內的元素個數.陣列中並不一定每個位置上都有元素 實現乙個query的方法,該方法接受三個引數root,start和end,分別代表線段樹的根節點和需要查詢的區間,找到陣列中在區間 start,e...

線段樹II 區間修改

題意 假設貨架上從左到右擺放了n種商品,並且依次標號為1到n,其中標號為i的商品的 為pi。小hi的每次操作分為兩種可能,第一種是修改 小hi給出一段區間 l,r 和乙個新的 newp,所有標號在這段區間中的商品的 都變成newp。第二種操作是詢問 小hi給出一段區間 l,r 而小ho要做的便是計算...

線段樹查詢

對於乙個有n個數的整數陣列,在對應的線段樹中,根節點所代表的區間為0 n 1,每個節點有乙個額外的屬性max,值為該節點所代表的陣列區間start到end內的最大值。為segmenttree設計乙個query的方法,接受3個引數root,start和end,線段樹root所代表的陣列中子區間 sta...