题解 | #Redraiment的走法#
Redraiment的走法
https://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa
#参考了大佬的解法。用迭代需要两层嵌套,一个判断条件迭代参数。用递归求每个L(i)只需要一层嵌套,一个判断条件迭代参数
#需要注意,要用map将所有输入的梅花桩高度字符,转成int格式
#就是求最小子序列
k=input()
nums=list(map(int,input().split()))
memo=dict()
def L(i,nums):
if i in memo:
return memo[i]
if i==len(nums)-1:
memo[i]=1
return 1
max_len=1
#只需要一个循环
for j in range(i+1,len(nums)):
if nums[j]>nums[i]:#仅寻找能构成递增序列的nums[j]
max_len=max(
L(j,nums)+1,max_len #不断更新max_len,max_len初始值为1
)
memo[i]=max_len
return max_len
ret=[L(i,nums) for i in range(len(nums))]
# print(ret)
print(max(ret))