【发布时间】:2016-11-18 00:57:27
【问题描述】:
我有一个值序列 [1,2,3,4,1,5,1,6,7],我必须找到长度增加的最长子序列。但是,一旦达到比前一个低的数字,该函数就需要停止计数。在这种情况下,此序列中的答案是 [1,2,3,4]。因为它在重置之前有 4 个值。我将如何为此编写 Python 代码?
注意:找到“最长递增子序列”似乎是一个常见的挑战,因此在网上搜索我发现了很多解决方案,这些解决方案可以计算整个序列的长度,并返回一个递增值的子序列,而忽略任何递减,所以在这种情况下,它将返回 [1,2,3,4,5,6,7]。那不是我要找的。
它需要对每个子序列进行计数,并在达到低于前一个数字时重置计数。然后它需要比较所有计数的子序列,并返回最长的一个。
提前致谢。
【问题讨论】:
-
这在算法方面似乎很简单,你试过解决吗? StackOverflow 不是代码编写服务。
-
输入应返回的内容:
[1,2,3,9,2,3,4,5,3,0,1,2,3,4,5,6] -
正如向我描述的那样,算法将存储每个子序列的长度,因此 1,2,3,9 是 4 个值,2,3,4,5 是 4,3 是 1 个值, 而 0,1,2,3,4,5,6 是 6 个值,因此它只会返回最终的最长子序列。
-
这不是标记问题的重复,这实际上是一个简单得多的问题,根本无法通过“重复”解决
标签: python list python-3.x subsequence