题解 | #合唱队#
合唱队
https://www.nowcoder.com/practice/6d9d69e3898f45169a441632b325c7b4
num = int(input())
l = list(map(int, input().split()))
def duilie(l,num):
dp = [1 for i in range(num)]
for i in range(num):
for j in range(i):
if l[i] > l[j]:
dp[i] = max(dp[j]+1, dp[i])
return dp
ll = duilie(l,num)
lll = l[::-1]
lll = duilie(lll,num)
lll = lll[::-1]
a = []
for i in range(num):
a.append(lll[i]+ll[i]-1)
print(num - max(a))
dp【i】:以第i个数位结尾的增长队列的长度,
将队列正向和逆向都做一遍,然后加和-1就是合唱队列的长度,
选出最大的,然后用队列总长度一减,那么就是最少出列人数。
