线上OJ:
一本通:1934:【06NOIP普及组】明明的随机数 (opens in a new tab)
AcWing:425. 明明的随机数 (opens in a new tab)
洛谷:P1059 [NOIP2006 普及组] 明明的随机数 (opens in a new tab)
核心思想:
本题的要求是
1、去重
2、排序
以上两个要求正好可以使用 set 来实现。set 自带了去重和排序的功能。输出时使用 iterator 即可。
利用 set
#include <bits/stdc++.h>
using namespace std;
int n, x;
set<int> s;
int main()
{
scanf("%d", &n);
while(n--)
{
scanf("%d", &x);
s.insert(x); // 插入后自动排序,自动去重
}
set<int>::iterator it; // 定义指向set的迭代器
printf("%d\n", s.size());
for(it = s.begin(); it != s.end(); it++) printf("%d ", *it); // 输出set中每一个数
return 0;
}