题解 | #合唱队#
合唱队
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))
 查看10道真题和解析
查看10道真题和解析