我也是来发一下题解好吧
本题解针对初学者,本身水平不高......
我的思路是:
因为他说随机数不超过1000吗
然后我就想能不能搞个下标计数,然后用两个循环去求去重后有多少,第二个就是输出去重后的结果。
代码实现:
#include<bits/stdc++.h>
using namespace std;
int n,a[105],x[1005],ans;
int main(){
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
x[a[i]]++;
}
sort(a+1,a+1+n);//排序,毕竟从小到大吗
for(int i=1;i<=1000;i++)
{
if(x[i]!=0) ans++;//统计去重后的个数。
}
cout<<ans<<endl;
//遍历整个数组,代码核心
for(int i=1;i<=n;i++)
{
if(x[a[i]]!=0)
{
cout<<a[i]<<" ";
x[a[i]]=0;//因为去重吗,所以每搞完一个就有赋0,已防他输出一模一样就过不了了吗)
}
}
return 0;
}
//直接搞定拿下!!!