對於N×M個矩陣與整數值,什麼是找到區域(X1,Y1)的最小元件的最有效方式(X2,Y2),其中0 < = X1 < = X2 < M和0 < = Y1 < = Y2 < N如何查找矩陣區域中的最小或最大元素?
我們可以假設我們會多次查詢不同的地區。
我想知道是否可以擴展範圍最小查詢方法到這個問題。 http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=lowestCommonAncestor
非常簡單的解決方案可以使用最有效的RMQ解決方案(Segment Tree),然後應用行或列明智。
最壞情況的複雜性將是分(N,M)*日誌(MAX(N,M))
但我依然相信我們可以做得更好。
感謝您陳述顯而易見的內容,但如果它是一組數字並要求範圍內的最小元素,我們可以做得很好。 http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=lowestCommonAncestor – cirik
@Celada我建議你閱讀它。 – cirik
@cirik我不想讀它,它不是我們回答時的問題的一部分。但在你的堅持下,我看着RMQ部分。這完全是關於預處理數組以獲得幫助索引以加快後續查詢的速度。這種預處理索引是一種折衷,它是否值得它取決於您在進行更改之前預期查詢數組/矩陣的次數。如果你從一開始就有這樣的預處理,並且你沒有在你的問題中提及它,*這就是我的意思是你的問題含糊不清。 – Celada