lintcode 202 線段樹的查詢

2021-08-19 11:24:03 字數 981 閱讀 2736

對於乙個有n個數的整數陣列,在對應的線段樹中, 根節點所代表的區間為0-n-1, 每個節點有乙個額外的屬性max,值為該節點所代表的陣列區間start到end內的最大值。

為segmenttree設計乙個query的方法,接受3個引數root,startend,線段樹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

query(root, 0, 2), return4

/**

* definition of segmenttreenode:

* class segmenttreenode

* }*/class solution

else if (mid < start)

else if (mid + 1 > end)

else

}};

lintcode202 線段樹的查詢

題目描述 思路 在查詢過程中,可能會遇到三種情況,目標區間在本區間中點的左邊 在本區間中點的右邊 跨越本區間的中點。在左邊的情況 從當前節點移動到左孩子節點。在右邊的情況 從當前節點移動到右孩子節點。在中間的情況 從中間分開,兩邊都要考慮,取其大者。遞迴進行。int query segmenttre...

線段樹的查詢 LintCode

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

Lintcode 線段樹的構造

線段樹是一棵二叉樹,他的每個節點包含了兩個額外的屬性start和end用於表示該節點所代表的區間。start和end都是整數,並按照如下的方式賦值 yes說明線段樹 又稱區間樹 是一種高階資料結構,他可以支援這樣的一些操作 見百科 線段樹區間樹 樣例比如給定start 1,end 6,對應的線段樹為...