17-动规-最长增长子序列
题目
来源
27. 最长增长子序列(第一期模拟笔试)
思路
本题思路参考本人之前的博客:算法-数学与简单DP-895. 最长上升子序列-CSDN博客
区别就是在于输入的处理上,核心思路是一样的
代码
# 本题用c++不好写输入,故直接用python
N=int(input())
for _ in range(N):
s = input()
L = list(
map(int, s.replace("[", "").replace("]", "").replace(" ", "").split(",")))
# print(L)
f=[0 for _ in range(len(L))]
res=0
for i in range(0,len(L)): # 根据倒数第二个不同的数分了i类
f[i]=1
for k in range(0,i): # 计算左半部分k的最大值,有i-1个数
if L[i]>L[k]: # 合法才要计算
f[i]=max(f[i],f[k]+1)
res =max(res,f[i])
print(res)