题解 | #合唱队#

合唱队

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))


全部评论

相关推荐

09-13 17:25
亲切的00后在笔试:我也遇到了,所以我早他一步查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务