题解 | #合唱队#
合唱队
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))