桶排:明明的随机数
2023-07-01 12:34:10
发布于:四川
75阅读
0回复
0点赞
不多说,直接祭出代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int N,n=0,x;//定义输入的个数,输的数和去重后的数的个数
int a[1001]={0};//桶
cin>>N;//输入要输入的个数
for(int i=1;i<=N;i++){
cin>>x;//输入随机数
a[x]=1;//做标记
}
for(int i=1;i<=1000;i++){//定成1000是因为随机数最大是1000
if(a[i]==1){//判断有没有数
n++;
}
}
cout<<n<<endl;//输出去重后的数的个数
for(int i=1;i<=1000;i++){//定成1000是因为随机数最大是1000
if(a[i]==1){//判断有没有数
cout<<i<<" ";//输出去重后的数
}
}
return 0;
}
提示:
以上代码之所以能实现去重功能是因为不管一个数出现了几次,
程序还是会在同一个地方做1的标记,
如果这个地方已经有标记了,
再来一个同样的数做标记,
也不会有什么改变。
这里空空如也
有帮助,赞一个