1030 完美数列(python)

N,p=[int(i) for i in input().split()]
A=sorted([int(i) for i in input().split()])

maxlen=0

for i in range(N):                    #一层循环
    for j in range(i+maxlen,N):       #二层循环开始,但是要进行跨越
        if A[i]*p<A[j]:               #探测数列的结尾点
            break
        maxlen+=1                     #查找的数列长度
print(maxlen)

如果直接使用双重循环的话,会超时,因此在第二层循环上要做一些跳跃

解决超时的方式:每次探索的跨度,都要比前一次的长,少于的自动舍弃

猜你喜欢

转载自blog.csdn.net/liu1008611/article/details/81168332