- 排序 再判断重复 重复的数就输出一次
我这里用桶排序(因为数据范围比较小)
这样你只要判断这个桶里面是不是有数字,有再判断是不是只有一个(去重)
#include<bits/stdc++.h>
using namespace std;
int main(){
int n, a[1010] ={0},falg = 0;
cin>>n;
for(int i = 1,x; i <= n; i++) cin>>x, a[x]++;
for(int i = 1; i <= 1010; i++)
if(a[i] != 0 )
falg ++;
cout<<falg <<endl;
for(int i = 1; i <= 1010; i++)
if(a[i]!=0)
cout<<i<<" ";
return 0;
}
- y总的 STL 大法
(哦,我STL没系统学过,只能%%%%%%%%%):
#include<bits/stdc++.h>
using namespace std;
const int N = 110;
int n , q[N];
int main()
{
scanf("%d", &n);
for (int i = 0; i < n; i ++ ) scanf("%d", &q[i]);
sort(q, q + n);
int k = unique(q, q + n) - q;
printf("%d\n", k);
for (int i = 0; i < k; i ++ ) printf("%d ", q[i]);
return 0;
}