4 条题解
-
1
#include<iostream> using namespace std; int n,x,a[1005],ans; int main() { cin >> n; for(int i=1;i<=n;i++) { cin >> x; a[x]=1; } for(int i=1;i<=1000;i++) { if(a[i]!=0) ans++; } cout << ans << endl; for(int i=1;i<=1000;i++) { if(a[i]!=0) cout << i << " "; } return 0; }
-
1
喜欢写暴力程序
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int n,a[105],cnt; int main(){ srand((int)time(0)); scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); sort(a+1,a+n+1); for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ if(a[i]==a[j]){ a[j]=rand(); cnt++; } } } sort(a+1,a+n+1); printf("%d\n",n-cnt); for(int i=1;i<=n-cnt;i++) printf("%d ",a[i]); return 0; }
-
0
基本思路:输入数组的同时,再计数排序,定义一个flag数组记录每个数字的出现次数,同时维护一个变量记录去重后的数组长度,最后输出flag数组值大于0的下标,就是去重加排序后的新数组
#include <bits/stdc++.h> using namespace std; int n,a[102],m,flag[1002]; int main(){ cin >> n; for (int i = 0; i < n; i++){ cin >> a[i]; if (flag[a[i]] == 0){ flag[a[i]]++; m++; } } cout << m << endl; for (int i = 0; i <= 1000; i++) if (flag[i] > 0) cout << i << ' '; return 0; }
- 1
信息
- ID
- 408
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 21
- 已通过
- 15
- 上传者