4
你給出的數字陣列,說查找數組(Python)的最長上升序列
nums = [2, 5, 3, 3, 4, 6]
,並希望得到的數字,正在上升的最長可能的序列,雖然不一定隨之而來的,而維持他們的秩序。
所以號碼,其中A Ñ <甲 n + 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
你嘗試過這麼遠嗎? – mshsayem
以下是您需要的搜索關鍵字:https://www.google.com/search?q=longest+increasing+subsequence – user2357112
如果您使用遞歸完成此操作,則可能值得發佈此操作。 –