直接桶排。O(n)
#include <cstring>
using namespace std;
int a[1010];
int main()
{
int n = 0, count = 0;
cin >> n;
memset(a, 0, sizeof(a));
for (int i = 1; i <= n; i++)
{
int t = 0;
cin >> t;
if (!a[t])
{
a[t] = 1;
count++;
}
}
cout << count << endl;
for (int i = 1; i <= 1000; i++)
{
if (a[i]) cout << i << ' ';
}
return 0;
}


京公网安备 11010502036488号