算法
(桶排) $O(n)$
把输入的每个数装进相应号码的桶中并置为1,重复装入的桶依然为1,每次输入一个数可统计下有多少不同的数,然后打印出装有数的桶的编号
C++ 代码
#include <iostream>
using namespace std;
#define rep(i, n) for (i = 1; i <= n; i++)
int a[1010];
int n, x, cnt;
int main() {
cin >> n;
int i;
rep(i, n) {
cin >> x;
if (!a[x]) cnt++;
a[x] = 1;
}
cout << cnt << endl;
rep(i, 1000) {
if (a[i]) {
cout << i << " ";
}
}
return 0;
}