我正在寻找一种算法来排序数组,但不是通过移动值.相反,我想删除尽可能少的值并最终得到一个排序列表.基本上我想找到最长的升序子阵列.
为了显示:
1 4 5 6 7 2 3 8
Run Code Online (Sandbox Code Playgroud)
应该成为(2删除)
1 4 5 6 7 8
Run Code Online (Sandbox Code Playgroud)
而不是(5删除)
1 2 3
Run Code Online (Sandbox Code Playgroud)
我可以看到我如何以一种天真的方式做到这一点,即通过递归检查每个元素的'remove'和'dont remove'树.我只是想知道是否有更快/更有效的方法来做到这一点.这种问题有一个共同的算法吗?