问题是:给定n段线(进入X轴),坐标为[Li,Ri](坐标可以为负数)。您将选择覆盖整个段[0,M]的最小段数。
在这里我做了什么:实际上我按照起始坐标(Li)按升序对段进行了排序。然后选择以最小的Li开头的段,然后选择最大的段。
但我的算法对某些情况不起作用。你们这个问题还有其他想法吗?请给我一些解决这个问题的提示。
答案 0 :(得分:1)
首先删除具有R < 0
的细分。在剩余的细分中,您必须至少选择一个细分L <= 0 <= R
。选择具有R
的细分中具有最大L <= 0
的细分受众群没有任何损失。
用[R, M]
代替[0, M]
冲洗并重复。
答案 1 :(得分:1)
通过增加李来对细分进行排序。
设L = 0,覆盖最左边的横坐标。
只要Li <= L,就扫描列表,同时记住Ri最大的段。
设置L = Ri并继续扫描(3),除非列表用尽。
主循环的不变量表示&#34;已扫描的段最小覆盖[0,L],其余段覆盖[L,M](尽管不是最低限度)&#34;。