简单的桶排序 一次ac我好牛
#include <bits/stdc++.h>
using namespace std;
int n;
int a[1001];
int i;
int b;
int main() {
cin >> n;
int count = 0;
for (i = 1; i <= n; i++) {
cin >> b;
if (a[b] == 0) {
a[b]++;
count++;
}
}
cout << count << "\n";
for (i = 1; i <= 1000; i++) {
if (a[i])
cout << i << " ";
}
return 0;
}
提供函数的做法,unique返回的为最后一个元素对应的指针,减去首指针后就是元素个数
sort是排序,传俩个指针
注意排序的时候是从1开始,所以是 sort(a + 1, a + 1 + n);
#include <bits/stdc++.h>
using namespace std;
int n;
int a[1001];
int i;
int b;
int main() {
cin >> n;
for (i = 1; i <= n; i++)
cin >> a[i];
sort(a + 1, a + 1 + n);
int cut = unique(a + 1, a + 1 + n) - (a + 1);
cout << cut << "\n";
for (i = 1; i <= cut; i++) {
cout << a[i] << " ";
}
return 0;
}