题解 | #合唱队# 啊这并不用二分 原来是因为这个超时
合唱队
https://www.nowcoder.com/practice/6d9d69e3898f45169a441632b325c7b4
# i 同学最长递增子串
def max_inc(q):
n= len(q)
dp = [1]*n
for i in range(1,n):
# 只要比前面的数大 就可以继承其最大递增子串+1 最终选出最大的
temp = [1] #这里去维护一个最大值列表就行了 不要一个个max 这里超时了
for j in range(i):
if q[i]>q[j]:
temp.append(dp[j]+1)
dp[i] = max(temp)
return dp
n = int(input())
q = list(map(int,input().split(" ")))
dp_inc = max_inc(q)
dp_dec = max_inc(q[::-1])[::-1]
lmax = [dp_inc[i]+dp_dec[i]-1 for i in range(0,n)]
res = n -max(lmax)
print(res)



查看8道真题和解析