【发布时间】:2023-03-10 13:59:02
【问题描述】:
给你一个数字数组,比如说
nums = [2, 5, 3, 3, 4, 6]
并且想要获得尽可能长的数字序列,虽然不一定是升序,但同时保持它们的顺序。
所以 Ann+1 的最长数字数组。在这种情况下:
[2, 3, 4, 6]
我通过递归和循环完成了这项工作,测试了每一种可能性。然而,这对于更大的阵列和 所以我的问题是,是否有更好/更快的方法来做到这一点。
提前致谢!
这是我之前的代码,它返回了最终数组的长度
def bestLine(arr):
maximum = 0
for i in range(0, len(arr)):
if (len(arr)-i < maximum):
break
maximum = max(maximum, f(i, len(arr), arr))
return maximum
def f(start, end, arr):
best = 0
for i in range(start+1, end):
if (end-i < best):
break
if (arr[i] > arr[start]):
best = max(best, f(i, end, arr))
return 1 + best
【问题讨论】:
-
这里是您需要的搜索关键字:google.com/search?q=longest+increasing+subsequence
-
如果您使用递归完成此操作,则可能值得发布此内容。
-
for condition An
答案是 [3, 4, 6],因为n&n+1,所以必须是序列(邻居),不能跳过。[2, 3, 4, 6]是答案,如果 Ax , 0
标签: python arrays list sequence