题解 | #合唱队#
合唱队
https://www.nowcoder.com/practice/6d9d69e3898f45169a441632b325c7b4
# 记住创建0数组的方法 LIST_L = [0 for i in range(N)] # 记住求列表最大值的方法 max(list) # 记住将列表元素类型转换的方法a = list(map(int,input().split())) def Fun(N,LIST): LIST_L = [0 for i in range(N)] for i in range(1,N): for j in range(i): if LIST[i] > LIST[j] : LIST_L[i] = max( LIST_L[i], LIST_L[j] + 1 ) return LIST_L N = int(input()) LIST = list(map(int,input().split())) # 先判断每一位数左边构成最长队形的最大长度 LIST_L = Fun(N,LIST) # 同样计算右侧 LIST.reverse() LIST_R = Fun(N,LIST) LIST_R.reverse() # 计算总数 LIST_A = [LIST_L[i] + LIST_R[i] + 1 for i in range(N)] print(N - max(LIST_A))