1 条题解

  • -1
    @ 2024-3-21 0:23:29

    我本来想用冒泡或者插序排序的算法的,结果每次打进去都是90%通过第九次验证超时…… #3的验证从900ms优化到了300ms,但是#9的验证还是超时~~(焯,老子半夜优化了两个半小时)~~ 以下是一开始写的效率最低的代码:

    num,loc=map(int,input().split())
    n=input().split()
    for i in range(len(n)-1):
        #f=False
        for j in range(i,len(n)):
            if int(n[j])<int(n[i]):
                n[j],n[i]=n[i],n[j]#;f=True
            #if f:break
    #排序↑(低效率,懒得优化)
    m=[]
    for i in range(len(n)-1):
        if n[i]!=n[i+1]:
            m.append(n[i])
    if m[-1]!=n[-1]:m.append(n[-1])
    #去重↑
    if loc-1<len(m):print(m[loc-1])
    else:print('NO RESULT')
    

    这是第一次优化的代码:(使用内置函数set)

    num,loc=map(int,input().split())
    n=input().split()
    n=list(set(n))
    n=[int(i) for i in n]
    for i in range(len(n)-1):
        min1=i
        for j in range(i,len(n)):
            if n[j]<n[min1]:min1=j
        n[min1],n[i]=n[i],n[min1]
    #排序↑
    #m=[]
    #for i in range(len(n)-1):
    #    if n[i]!=n[i+1]:m.append(n[i])
    #if m[-1]!=n[-1]:m.append(n[-1])
    #m=list(set(n))
    m=n
    #去重↑
    if loc-1<len(m):print(m[loc-1])
    else:print('NO RESULT')
    #3验证900ms
    

    这是第三次优化:

    num,loc=map(int,input().split())
    n=input().split()
    n=list(set(n))
    n=[int(i) for i in n]
    l=len(n)
    for i in range(l-1):
        min1=i;f=True
        for j in range(i,l):
            if n[j]<=n[min1]:
                min1=j;f=False
        if f:break
        else:n[min1],n[i]=n[i],n[min1]
    #排序↑
    #m=[]
    #for i in range(len(n)-1):
    #    if n[i]!=n[i+1]:m.append(n[i])
    #if m[-1]!=n[-1]:m.append(n[-1])
    #m=list(set(n))
    #去重↑
    #print(n)
    if loc<=l:print(n[loc-1])
    else:print('NO RESULT')
    #3验证300ms
    

    这是最后提交上去的代码(啊啊啊我在干什么😭):

    num,loc=map(int,input().split())
    n=input().split()
    n=list(set(n))
    n=[int(i) for i in n]
    n=sorted(n)
    if loc<len(n)+1:print(n[loc-1])
    else:print('NO RESULT')
    

    这个故事告诉我们:写代码千万不要上头跟自己过不去(尤其是这种简单代码(或许是我根本不懂怎么优化这一大坨代码,欢迎大佬嘲笑😭)) image

    • 1

    【数据排序】第k小整数(重复,需要改编)

    信息

    ID
    301
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    38
    已通过
    17
    上传者