题解 | #合唱队#

合唱队

http://www.nowcoder.com/practice/6d9d69e3898f45169a441632b325c7b4

def func(lst,num):
    stu_lst = [1]*num
    for i in range(1,num):
        for j in range(i):
            if lst[i]>lst[j]:
                stu_lst[i] = max(stu_lst[j]+1,stu_lst[i])
    return stu_lst

def main(num,lst):
    left = func(lst,num)
    right = func(lst[::-1],num)
    li = []
    for i in range(num):
        li.append(left[i]+right[~i]-1)
    print(num-max(li))
while True:
    try:
        num = int(input())
        lst = [int(i) for i in input().split()]
        main(num,lst)
    except:
        break
# python会超时

全部评论

相关推荐

星辰再现:裁员给校招生腾地方
点赞 评论 收藏
分享
每晚夜里独自颤抖:要求太多的没必要理
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

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