题解 | #合唱队#

合唱队

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

def fun(nums):
    n = len(nums)
    dp = [1] * len(nums)
    for i in range(n):
        for j in range(i):
            if nums[j] < nums[i] and dp[i] < dp[j]+1:
                dp[i] = dp[j] + 1
    return dp


n = int(input())
nums = list(map(int,input().split()))

dp1 = fun(nums)
dp2 = fun(nums[::-1])[::-1]

maxlen = 0
for i in range(n):
    maxlen = max(dp1[i]+dp2[i]-1,maxlen)


print(n - maxlen)

全部评论

相关推荐

07-15 00:33
江苏大学 Java
代码飞升:哈哈哈哈评论区三个打广告的
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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