2018科大讯飞笔试题目

N个杀手,从1-n依次排列,每个杀手杀了N个人记为m。

即输入为

第一行:杀手的个数

N

第二行N个数,分别代表杀手杀人的个数

如:10 9 7 8 6 5 3 4 2 1

如果左边的人比右边的人杀人多,右边的杀手将被杀掉,同样被杀的杀手也会杀掉他右边相邻且比他杀人数量少的杀手。即杀手可以同时被左边相邻的人杀掉,也可以杀掉右边相邻的人。

假设每次天黑杀手即可以行动,若为发生凶杀则为平安夜。请设计一个程序几个夜晚之后是平安夜。

输入例子

10

10 9 7 8 6 5 3 4 2 1

在第一个夜晚之后:10 4

第二个夜晚            10

第三个夜晚   平安夜

输出是2

n = input().split()
n_list = []
for i in n:
    n_list.append(int(i))
tem = n_list.copy()
tem2 = n_list.copy()
tem2.sort()

n = 0

tem1 = []

while tem2 != tem :
    n += 1
    #tem1.append(tem[0])
    for i in range(0,len(tem)-1):
        if i == 0:
            tem1.append(tem[0])            
        if tem[i] <= tem[i+1] :
            tem1.append(tem[i+1])
    tem = tem1.copy()
    tem2 = sorted(tem)
    tem1 = []         
print(n)

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值