题目:300.最长上升子序列
描述:
给定一个无序的整数数组,找到其中最长上升子序列的长度。
示例:
输入: [10,9,2,5,3,7,101,18]
输出: 4
解释: 最长的上升子序列是 [2,3,7,101],它的长度是4。
一:利用递归实现最长上升子序列
import time
import random
##### init 300.最长上升子序列 ########
def lts(input):
result = 0
for index in range(len(input)):
result = max(result,f(input,index))
return result
def f(input,index):
res = 1
for j in range(len(input)):
if j< index and input[j]< input[index]:
res = max(res, f(input,j)+1)
return res
##### init 300.最长上升子序列 :自顶向下(记忆化) ########
def lts_dp(input):
result = 0
dp = [-1 for i in range(len(input))]
for index in range(len(input)):
result = max(resul