用python来解 PAT 1060爱丁顿数

根据题意,一组数据里面,有N个大于N的数据,求对于一组数据的最大N值

题目给出天数和每天的运动里程,第一步应该就是将数据排序,然后直接遍历加切片判断,至于递增还是递减可以思考看看,如果是递增数列,对于其后的数,只能保证是大于等于它的关系,如果同个数值有多个就显得麻烦了,所以我这里用的是递减,然后直接判断前面的数的个数就ok,代码如下:

n = int(input())#连续骑车的天数
l = [x for x in map(int,input().split())]
l.sort()
l.reverse()
sum = 0
for i in range(n):
    if l[i] > sum + 1:
        sum +=1
print(sum)

 

提交结果:

用python来解 PAT 1060爱丁顿数