题解 | 动态规划#Redraiment的走法#

Redraiment的走法

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

假设 dp[i]为终点为第i个桩的最大走法

那么比较之前num[j]中比num[i]小的桩的最大走法:

如果 num[j]< num[i],那么就有两种情况:

  1. 踩上j桩: dp[i] = 1 + dp[j]
  2. 不踩,忽略: dp[i] = dp[i] (原数量不变)

取两个情况的最大值

while True:
    try:
        n = int(input())
        s = list(map(int,input().split()))
        dp= [1] *n
        for i in range(n):
            for j in range(i):
                if s[i]>s[j]:
                    dp[i] = max(1+dp[j],dp[i])
        print(max(dp))
    except:
        break
        
        
全部评论

相关推荐

整顿职场的柯基很威猛:这种不可怕,最可怕的是夹在一帮名校里的二本选手,人家才是最稳的。
点赞 评论 收藏
分享
Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
31 6 评论
分享
牛客网
牛客企业服务