2 条题解
-
0
#include<bits/stdc++.h> using namespace std; void quchong(int arr[],int mx,int length) { int i,sum; sum = length; int *buckets; buckets = (int *)malloc(sizeof(int)*(mx+1));//给桶分配空间 memset(buckets,0,sizeof(int)*(mx+1));//给桶里面的值全部赋值为零 for(i=0;i<length;i++) { buckets[arr[i]]++;//进行去重 if(buckets[arr[i]]>=2) { sum--; } } cout<<sum<<endl; // 输出去重之后的值 for(i=0;i<=mx;i++) { if(buckets[i]) { cout<<i<<" "; } } } int main() { int t,n,i; cin>>t;//实验的测试样例的个数 while(t--) { cin>>n;//需要生成随机数的个数 int arr[n]; //srand(time(NULL));//建立时间种子,生成随机数的种子 for(i=0;i<n;i++) { cin>>arr[i]; } //生成之后进行排序 sort(arr,arr+n);//升序排列,这是快速排序 //使用桶排序进行去重 quchong(arr,arr[n-1],n); cout<<endl; } }
-
0
#include<stdio.h> #include<algorithm> #include<string.h> using namespace std; int a[100000]; int box[100000]; int main() { int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); int cnt=n; memset(box,0,sizeof(box)); for(int i=0;i<n;i++) { scanf("%d",&a[i]); box[a[i]]++; if(box[a[i]]>1) { cnt--; a[i]=-1; } } for(int i=0;i<n;i++) sort(a,a+n); printf("%d\n",cnt); for(int i=0;i<n;i++) { if(a[i]!=-1) printf("%d ",a[i]); } printf("\n"); } }
- 1
信息
- ID
- 190
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 727
- 已通过
- 183
- 上传者