题目描述
给你n个整数,请按从大到小的顺序输出其中前m大的数。
输入
每组测试数据有两行,第一行有两个数 n , m ( 0 < n , m < 1000000 ) n,m(0<n,m<1000000) n,m(0<n,m<1000000),第二行包括含有 n n n个各不相同,且都处于区间 [ − 50000 , 50000 ] [-50000,50000] [−50000,50000]的整数。
输出
对每组测试数据按从大到小的顺序输出前 m m m大的数。
样例输入:
5 3
3 -35 92 213 -644
样例输出
213 92 3
如果直接进行排序的话,就算是
n
l
o
g
n
nlogn
nlogn也会超时,但是我们可以发现:每个数是很小的,这样我们就可以开个数组记录每个数是否出现。
这样,最多遍历
2
⋅
50000
2·50000
2⋅50000即可排序成功。