對於乙個有n個數的整數陣列,在對應的線段樹中, 根節點所代表的區間為0-n-1, 每個節點有乙個額外的屬性max
,值為該節點所代表的陣列區間start到end內的最大值。
為segmenttree設計乙個query
的方法,接受3個引數root
,start
和end
,線段樹root所代表的陣列中子區間[start, end]內的最大值。
您在真實的面試中是否遇到過這個題?
yes 樣例
對於陣列[1, 4, 2, 3]
, 對應的線段樹為:
[0, 3, max=4]
/ \
[0,1,max=4] [2,3,max=3]
/ \ / \
[0,0,max=1] [1,1,max=4] [2,2,max=2], [3,3,max=3]
query(root, 1, 1), return4
query(root, 1, 2), return4
query(root, 2, 3), return3
class solution
}};
線段樹查詢 II
對於乙個陣列,我們可以對其建立一棵線段樹,每個結點儲存乙個額外的值count來代表這個結點所指代的陣列區間內的元素個數.陣列中並不一定每個位置上都有元素 實現乙個query的方法,該方法接受三個引數root,start和end,分別代表線段樹的根節點和需要查詢的區間,找到陣列中在區間 start,e...
線段樹查詢 II
對於乙個陣列,我們可以對其建立一棵 線段樹,每個結點儲存乙個額外的值 count 來代表這個結點所指代的陣列區間內的元素個數.陣列中並不一定每個位置上都有元素 實現乙個 query 的方法,該方法接受三個引數 root,start 和 end,分別代表線段樹的根節點和需要查詢的區間,找到陣列中在區間...
線段樹單點查詢
poj2828 題目大意 排隊,每個人可以有乙個可插入的序號,可以直接排到那個位置去 最重要的點就是在有序號i的人的前面,1 i 1的序號已經出現了 逆推,因為在最後面的人是不受約束的,不會因為還有人排隊進來而改變自己在佇列當中的序號。又因為在他的前面是有i個人的序號是比他小的,那麼他得留出來i個位...