Contents
Problem
給定 M ,和數個區段,找出使用最少區段覆蓋 [0,M] 的方法。
p.s. 區段可重疊。
Solution
先將各區段依左邊界排序。
每次都先找左邊界最小的,看左邊界是否可以從已覆蓋的區域開始接(一開始當然是從 -INF 到 0 ),如果不行則代表兩段之間會有空隙,即無法完成。
從多個符合條件(不會產生空隙)的區段中找右邊界最遠的,且其右邊界超過已覆蓋區域的右邊界。
重複以上直到覆蓋完 [0,M]。
Code
1 |
|
給定 M ,和數個區段,找出使用最少區段覆蓋 [0,M] 的方法。
p.s. 區段可重疊。
先將各區段依左邊界排序。
每次都先找左邊界最小的,看左邊界是否可以從已覆蓋的區域開始接(一開始當然是從 -INF 到 0 ),如果不行則代表兩段之間會有空隙,即無法完成。
從多個符合條件(不會產生空隙)的區段中找右邊界最遠的,且其右邊界超過已覆蓋區域的右邊界。
重複以上直到覆蓋完 [0,M]。
1 |
|