题目要点
- 区间范围大(要考虑时间复杂度)
- n个各不相同(可考虑数组)
代码实现
#include<iostream>
#include<algorithm>
#define OFFSET 500000 // 转化为数组表示
using namespace std;
int Hash[1000002]; // 保存每个数的输入情况
int main()
{
int n,m,a;
while(cin>>n>>m){
// input
for(int i=0;i<n;i++){
cin>>a;
Hash[a+OFFSET] = 1;
// Hash[a+OFFSET]++; // 当输入的数可以相同时
}
// output
for(int i=500000;i>=-500000;i--){
//loop: // 当输入的数可以相同时
if(Hash[i+OFFSET]==1){
//if(Hash[i+OFFSET]--){ // 当输入的数可以相同时
cout<<i;
m--;
if(m) cout<<" ";
else {
cout<<endl;
break;
}
//goto loop; // 当输入的数可以相同时
}
}
}
return 0;
}