60分求助

P1923 【深基9.例4】求第 k 小的数

Login_ @ 2021-08-19 22:04:38

#include<iostream>
#include<algorithm>

using std::cin;
using std::cout;
using std::sort;

int n,k;
int a[5000010];

int main()
{
    cin>>n>>k;
    for(int i=0;i<n;i++)
        cin>>a[i];
    sort(a,a+n);
    cout<<a[k];
    return 0;
}

by yukimianyan @ 2021-08-19 22:05:23

复杂度不对,建议重新想


by 马桶战神 @ 2021-08-20 22:26:43

直接这样会TLE的,建议看题解,里面有详细讲解


by Hoxiko @ 2021-08-22 16:27:28

首先光排序是有问题的,排序完是要去重的。 所以这可以用sort和unique,当然这会TLE, 可以用nth_element,配上scanf就能过了


by Wang1006 @ 2021-08-31 14:01:18

register + o2过记录


|