3 条题解
-
1
两种做法,可以按题意先排序后去重:
#include <bits/stdc++.h> using namespace std; int a[100],n; int main(){ cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n); int ans; ans=unique(a,a+n)-a; cout<<ans<<endl; for(int i=0;i<ans;i++){ cout<<a[i]<<" "; } }
也可以用
set
容器:#include <bits/stdc++.h> using namespace std; int n,tmp; int main(){ set<int> s; cin>>n; for(int i=0;i<n;i++){ cin>>tmp; s.insert(tmp); } cout<<s.size()<<endl; while(!s.empty()){ cout<<*s.begin()<<" "; s.erase(s.begin()); } }
-
0
这道题非常简单,只是去重,去要用到计数思想,然后用一个变量来储存数量,这里我用的变量是cnt
#include <bits/stdc++.h> using namespace std; int a[1005]; int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ int k; cin>>k; a[k]++; } int cnt=0; for(int i=1;i<=1000;i++){ if(a[i]>0){ cnt++; } } cout<<cnt<<endl; for(int i=1;i<=1000;i++){ if(a[i]>0){ cout<<i<<" "; } } return 0; }
-
0
#include<bits/stdc++.h> using namespace std; int t=100000000,n,sum; int a[10000],b[10000]; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; b[a[i]]++; if(b[a[i]]>1){ b[a[i]]=1; } } for(int i=1;i<=1010;i++){ if(b[i]>0) sum++; } cout<<sum<<endl; for(int i=1;i<=1010;i++){ if(b[i]>0) cout<<i<<" "; } }
- 1
信息
- ID
- 60
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 66
- 已通过
- 40
- 上传者