题解 | #合唱队#

合唱队

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

会超时

def func(num,people): lst = [1]*num for i in range(1,num): # i表示后一个人 for j in range(i): # j表示前一个人 if people[j] < people[i]: # 当后一人比前一人高时 lst[i] = max(lst[i],lst[j]+1) # 到后一人为止,当前人数为前人+1或自己中更大的一个 return lst

while 1: try: num = int(input()) people = input().split() people = [int(i) for i in people] left = func(num,people) # 从左往右排每个位置最大数 right = func(num,people[::-1]) # 从右往左排每个位置最大数 stu_list= [left[i]+right[~i]-1 for i in range(num)] # 实际是左顺序与右逆序相加后减一 print(num-max(stu_list)) # 出列数 except: break

全部评论

相关推荐

真烦好烦真烦:豆包润色了自己没看看吗,再说了,都说豆包是愚蠢且勤快的大学生,ds才是聪明的研究生,怎么敢让豆包写论文的
你们的毕业论文什么进度了
点赞 评论 收藏
分享
06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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