【发布时间】:2023-03-05 10:11:01
【问题描述】:
谁能用一些伪代码和/或解释如何解决这个问题来帮助我解决这个问题?
给定一个范围列表 {start, stop} 和一个目标长度 n。一些范围将与其他范围重叠。开发一种算法来确定从 1 到 n 完全跨越所需的最小范围数。
例如,如果给定一个范围列表 [{1,2},{1,3},{2,3}] 和目标长度 n = 3,我应该返回 1,因为我们只需要{1,3} 涵盖从 1 到 3。显然,这是一个非常简单的测试用例。
有什么想法吗?我很困惑。我几乎想开发某种贪心算法,但我不确定这是否适合贪心解决方案......
【问题讨论】:
-
到目前为止,我认为我应该首先按其开始元素对范围列表进行排序,但我不确定下一步该去哪里......
-
让我们谈谈覆盖目标区间
[a,b]而不仅仅是[1,n]。您有多个包含a的区间。你需要一个吗?超过一个?哪个)?一旦你做出了选择,你现在需要解决什么样的问题?
标签: algorithm range intervals minimum greedy