题解 | #合唱队#

合唱队

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

number = int(input())
data = list(map(int,input().split()))
def Z(data):# 动态规划,递增序列
    n = [1]*len(data)
    for i in range(len(data)):
        for j in reversed(range(i)):
            if data[j] < data[i]:
                n[i] = max(n[i], n[j]+1)
    return n
def J(data):# 动态规划,递减序列
    n = [1] * len(data)
    for i in reversed(range(len(data))):
        for j in range(i + 1, len(data)):
            if data[j] < data[i]:
                n[i] = max(n[i], n[j] + 1)
    return n
a,b,c = [],Z(data),J(data)
for i in range(number):
    a.append(b[i] + c[i] - 1)
print(number - max(a))

全部评论

相关推荐

点赞 评论 收藏
分享
认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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