题解 | #合唱队#【左右互博法】

合唱队

https://www.nowcoder.com/practice/6d9d69e3898f45169a441632b325c7b4

把两个双重for循环做成一个,但是依旧超时。

n = int(input())
hgt = list(map(int, input().split(' ')))
ldp = [1] * n 
rdp = [1] * n 
for i in range(1, n):
    for j in range(i):
        ii, jj = -i - 1, -j - 1
        if hgt[i] > hgt[j]:
            ldp[i] = max(ldp[i], ldp[j] + 1)
        if hgt[ii] > hgt[jj]:
            rdp[ii] =max(rdp[ii], rdp[jj] + 1)

print(n - max([i + j - 1 for i, j in zip(ldp, rdp)]))
全部评论

相关推荐

02-05 08:18
四川大学 Java
在思考的熊熊很讨厌吃香菜:不是,我门头沟学院呢?这都没排上?
点赞 评论 收藏
分享
02-11 17:47
已编辑
门头沟学院 Java
神哥不得了:神哥来啦~建议先在网上找一些高频的八股去背,然后再去广泛的背八股,这样的学习会更有效率一些,简历的这两个项目建议换掉,换成两个高质量的项目,这样的话获得面试的比例会更高一点,专业技能的话排版要注意一下,要加句号的话就都加,要不加就都不加,荣誉奖项的话写在教育经历里边吧,这个确实没有太多的含金量
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务