题解 | #合唱队#

合唱队

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

class choir:
    def left_max(l):
        ans = [1]*len(l)
        for i in range(len(l)):
            for j in range(i):
                if l[j]<l[i] and ans[j]+1>ans[i]:
                    ans[i] = ans[j]+1
        return ans

    def right_max(l):
        ans = [1]*len(l)
        for i in range(len(l)-1,-1,-1):
            for j in range(i+1,len(l)):
                if l[j]<l[i] and ans[j]+1>ans[i]:
                    ans[i] = ans[j]+1
        return ans

    try:
        while True:
            n = int(input())
            height = list(map(int, input().split()))
            left_num = left_max(height)
            right_num = right_max(height)
            sum_num = []
            for i in range(len(left_num)):
                sum_num.append(left_num[i]+right_num[i])
            print(n-max(sum_num)+1)
    except:
        pass

全部评论

相关推荐

02-28 01:18
已编辑
南昌大学 后端工程师
黑皮白袜臭脚体育生:把开源经历放个人项目上边应该更好,就像大部分人都把实习经历放个人项目上边
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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