演算法 區間重合推斷

2021-09-07 10:25:50 字數 486 閱讀 6506

題目描寫敘述:

給定乙個源區間 [x,y]和n個無序的目標區間[x1,y1],[x2,y2],...[xn,y,],推斷給定的源區間[x,y]在不在目標區間內。

比如:給定源區間[1 6]和目標區間[1 2][2 4][4 9]就可以覺得區間[1 6]在目標區間內,由於源區間的並集為[1 9 ].

試想一下,如今在這種乙個目標區間的集合。 須要頻繁地去查詢乙個區間是否在該集合中。那麼怎麼樣才幹減少單次查詢的復

雜度呢。預處理。對區間的預處理能夠滿足這種需求。

直接上方法:

第一步: 首先對區間進行合併(也就是將區間merge成為不相交的區間的集合)

第二步: 再在這個處理之後的區間中去查詢這樣源區間,關於查詢,當然二分能夠有非常好的效果,那麼將區間排序就可以。

於是: 1  將區間按其起始點排序。

2  merge相交的區間

3  二分查詢源區間就可以。

**例如以下:

區間重合 c

給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 1,4 4,5 輸出 1,5 解釋 區間 1,4 和 4,5 可被視為重疊區間。先排序 按照...

程式設計之美 區間重合判斷

問題描述 給定乙個源區間 x,y 和若干個無序的目標區間 x0,y0 x1,y1 x2,y2 xn,yn 判斷源區間是否在目標區間內。思路 1 分解源區間 把目標區間逐一的對映在源區間上,可以將源區間分解為更小的區間。最後看是否能將源區間全部分解。例如 源區間 目標區間 step 1 目標區間 可以...

區間重合判斷 C語言實現

問題描述 給定乙個源區間 x,y y x 和n個無序的目標區間 x1,y1 x2,y2 x3,y3 xn,yn 判斷源區間 x,y 是不是在目標區間內?例如給定源區間 1,6 和一組無序的目標區間 2,3 1,2 2,9 3,4 即可認為區間 1,6 在區間 2,3 1,2 2,9 3,4 內。解決...