一、题目分析
首先对输入数据进行排序,然后对排序好的数据进行去重
二、代码实现
在此代码中用到了unique,英文中unique是独一无二的意思。因为unique(a,a+n)返回的是地址,所以需要再减去a(a是数组的名字)。
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[10000];
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n); //对数组中所有元素排序
int k=unique(a,a+n)-a; //用unique去重,得到的k是刚刚开始重复的位置
cout<<k<<"\n"; //一共k个不重复的数据,输出k
for(int i=0;i<k;i++) cout<<a[i]<<' ';//输出不重复的k个数据
return 0;
}