题解 | #Redraiment的走法#
Redraiment的走法
https://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa
def inc_max(l):
dp = [1]*len(l) # 初始化dp,最小递增子序列长度为1
arr = [l[0]] # 创建数组
for i in range(1,len(l)): # 从原序列第二个元素开始遍历
if l[i] > arr[-1]:
arr.append(l[i])
dp[i] = len(arr)
else:
for j in range(len(arr)):
if arr[j] >= l[i]:
arr[j] = l[i]
dp[i] = j+1
break
return dp
while True:
try:
N = int(input())
s = list(map(int, input().split()))
left_s = inc_max(s)
print(max(left_s))
except:
break

查看1道真题和解析
