對於乙個陣列,我們可以對其建立一棵線段樹
, 每個結點儲存乙個額外的值count
來代表這個結點所指代的陣列區間內的元素個數. (陣列中並不一定每個位置上都有元素)
實現乙個query
的方法,該方法接受三個引數root
,start
和end
, 分別代表線段樹的根節點和需要查詢的區間,找到陣列中在區間[start, end]內的元素個數。
樣例對於陣列[0, 空,2, 3]
, 對應的線段樹為:
[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)
, return0
query(1, 2)
, return1
query(2, 3)
, return2
query(0, 2)
, return2
/**
* definition of segmenttreenode:
* class segmenttreenode
* }*/class solution
if (start == root->start && end == root->end)
else if (start >= root->left->start && start <= root->left->end)
else
}else
}};
線段樹查詢 II
對於乙個陣列,我們可以對其建立一棵 線段樹,每個結點儲存乙個額外的值 count 來代表這個結點所指代的陣列區間內的元素個數.陣列中並不一定每個位置上都有元素 實現乙個 query 的方法,該方法接受三個引數 root,start 和 end,分別代表線段樹的根節點和需要查詢的區間,找到陣列中在區間...
線段樹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...