
Zerojudge k572 題解

離散化這個字光是聽起來就超帥
題目
第一行輸入 N 筆資料
每筆資料有一個區間 [L,R]
求出重疊最多的數字,若相同則輸出最大者
Zerojudge題目連結
測資
Example 1:
Input:
3
19 25
23 26
18 20
Output:
25
Example 2:
Input:
2
-1000000000 999999995
-999999995 1000000000
Output:
999999995
解題關鍵
整個程式最重要的邏輯就是:
最優解一定會出現在剛剛輸入的一堆範圍中 某個範圍的邊界值
因為對於兩個重疊的範圍,
如:
1 | -XXXXX--- |
若有一個重疊且非邊界,如:5
則必存在一個重疊且邊界,如:6,則6為最佳解
這時候就可以利用 map 非連續的特性
只對邊界進行處裡,而非整個範圍
程式碼
1 | /* |
- 標題: Zerojudge k572 題解
- 作者: Grissia
- 撰寫于 : 2024-10-05 13:26:29
- 更新于 : 2024-11-27 19:17:09
- 連結: https://grissia.github.io/2024/10/05/k572/
- 版權宣告: 本作品采用 CC BY-NC-SA 4.0 进行许可。