【发布时间】:2015-06-25 17:03:40
【问题描述】:
我正在研究算法,我通常会偶然发现这类问题。好的,我有一个数字列表,我必须找到这个列表的最大子列表,其中每个数字之间的距离等于或大于列表的大小。例如:
[1, 3, 5, 10]
本例中的距离为 4。那么,[1, 5, 10] 将是正确答案。请记住,当我删除数字 3 时,距离现在是 3。
欢迎任何直觉,我什至不知道如何解决这个问题。我尝试为每个号码生成可能的路径,例如[1,5,9,13],但我想不出一种方法来选择要删除的号码。这类问题据说可以在 O(N) 内解决。
【问题讨论】:
-
最初是列表排序吗?
-
在 [1, 3, 7, 11] 的情况下 .... 解决方案 [1, 7, 11] 或 [3, 7, 11] 或两者或任何一个?跨度>
-
您想找到任何这样的列表(在这种情况下,简单的答案是取空列表)还是最佳列表?在后一种情况下,您希望优化什么?
-
@FUZxxl 对不起。我编辑它。它必须是最大子列表,即在
[3,10]不能作为答案的情况下。 -
@JoseRicardoBustosM。两者都可以。
标签: algorithm language-agnostic