题解 | #Redraiment的走法#

Redraiment的走法

https://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa

#别人的算法,动态规划问题,要好好学习
#本题:寻找最长的递增子序列的长度
#输入
n=int(input())
l=[int(x) for x in input().strip().split()]

#动态规划问题
#这道题用动态规划最合适,而且要从右往左走开始计算比当前l[i]
#大于的l[j](需有l[j]开始结算有多个比其大的值有多少个),比较
#公式即为max(dp[i],dp[j]+1)

dp = [1]*n
for i in range(n)[::-1]:
    for j in range(i+1,n):
        if l[j]>l[i]:
            dp[i] = max(dp[i],dp[j]+1)

#输出
print(max(dp))

全部评论

相关推荐

06-17 21:57
门头沟学院 Java
白友:噗嗤,我发现有些人事就爱发这些,明明已读不回就行了,就是要恶心人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务