题解 | #合唱队#

合唱队

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

# 计算每个人左边比他矮的人数,最小值是1
def f(ls):
    dp = [1]*len(ls)
    for i in range(len(ls)):
        for j in range(i+1):
            if ls[j] < ls[i]:
                dp[i] = max(dp[i],dp[j]+1)
    return dp
    
N = int(input())
ls = list(map(int,input().split()))
dp1 = f(ls)
dp2 = f(ls[::-1])[::-1]
ld = []
for i in range(len(ls)):
    ld.append(dp1[i]+dp2[i])
m = max(ld)-1
print(N-m)


全部评论

相关推荐

码农索隆:这种hr,建议全中国推广
点赞 评论 收藏
分享
lllllkin:感觉可以精简到一页简历,有些排版感觉不是必须的。 时间线越早的,你自己越熟悉的放前面。描述可以更精简些,一些问题解决感觉可以不用写具体技术栈,卖个关子,等面试官问。
点赞 评论 收藏
分享
仁者伍敌:服务员还要脱颖而出,这是五星级酒店吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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