Algorithm 使用";最长递增子序列算法(nlgn)";
参考:我正在解决嵌套玩偶问题: 我写这部分是为了找到最长的递增子序列(nlgn版本)。例如,如果序列如下:1 2 3 1 2 1Algorithm 使用";最长递增子序列算法(nlgn)";,algorithm,Algorithm,参考:我正在解决嵌套玩偶问题: 我写这部分是为了找到最长的递增子序列(nlgn版本)。例如,如果序列如下:1 2 3 1 2 1 我找到了最大的子序列:“1 2 3”,并将其从 原始序列。序列变为1 2 1 我找到最大的子序列:“12”,然后再次删除它。序列变为1 我找到最大的子序列:“1”,然后将其删除。序列变为空 所以答案是3,3个增加的子序列 我的问题是我得到了TLE(时间限制),我需要一种更好的方法来计算子序列。有一个关于使用“迪尔沃思定理”的提示,但我不知道如何应用它 算法 如果我理解
(3, 3),
(2, 2),
(2, 2),
(1, 1),
(1, 1),
(1, 1),
(1, 1)
然后提取高度:
3,2,2,1,1,1,1
然后找到最长的递增子序列(请注意,每个元素必须与前一个元素相同或更高,因此严格来说,您可以找到最长的非递减子序列):
长度为4,因此答案为4。谢谢!你能举个小例子吗。例如,如果序列是(1,1),(1,1),(2,2),(3,3),(1,1),(2,2),(1,1),答案应该是4。最长的子序列长度为3。或者(1,1),(1,1),(1,1),(1,1),(1,1)答案是5,最长的子序列是5@nemo我已经在答案中添加了你的例子-这会让事情更清楚吗?非常感谢!!!我要实现它,如果我没有把事情做好,我会回到这里。1,1,1,1是一个“递增的子序列”吗?这些数字并没有增加。在3 2 1 1 1中,最长的递增子序列是2 3和1 2。
1,1,1,1