【发布时间】:2018-04-12 02:20:47
【问题描述】:
假设我有一个 n 个整数区间 [a,b] 的列表,每个表示集合 S = {a, a+1, ...b}。重叠定义为|S_1 \cap S_2|。示例:[3,6] 和 [5,9] 在 [5,6] 上重叠,因此其长度为 2。任务是在 Little-O(n^2) 中找到两个重叠最长的区间,仅使用递归和非动态规划。
朴素的方法显然是蛮力的,它不符合时间复杂度条件。我也没有成功尝试扫描线算法和/或最长公共子序列算法。
我只是找不到将其划分为子问题的方法。任何想法将不胜感激。
还发现了这个,我认为这根本不起作用:
【问题讨论】:
-
如果问题是关于寻找算法而不是实现它,也许Computer Science 更适合? (但请记住don't crosspost 并在询问之前阅读他们的帮助中心)
-
只是说“在我看来根本不起作用”并不能证明它实际上不起作用。您需要解释为什么它不起作用以及为什么您的问题不是重复的。
-
蛮力会在 O(n^2) 中运行,所以它应该满足问题要求
-
@Mitchel0022 请查看 Little-O 和 Big-O 表示法之间的区别
标签: algorithm intervals overlap schedule