【发布时间】:2018-12-16 06:08:34
【问题描述】:
示例:给定 [1 2 3 10 7 8 9],我寻找给出 [1 1 1 0 1 1 1] 的算法。
我有一个未排序的数组作为输入。作为输出,我寻找最大的排序选择。
- “selection”是指一个长度相同的数组,包含 1 和 0(如果元素被选中)。
- 使用 "sorted" 我的意思是选定的元素构成一个排序数组 - 在上面的示例中:[1 2 3 7 8 9]。
- “最大的”是指没有排序的选择中包含更多的 1。
最坏的情况:我必须尝试所有 2^{0,1} 种可能的选择。有没有更快的算法来做到这一点?我不记得 CS 学习中的任何内容,也无法在网上找到任何内容(至少按照我的措辞)。
【问题讨论】:
-
维基百科的帮助,谢谢! geeksforgeeks 网站仅详细介绍了 O(N^2) 解决方案。另一个 stackoverflow-post 让我对 S 与 LIS 有点困惑。我现在实现了维基百科版本并将其发布在这里。
标签: arrays algorithm dynamic-programming lis