9 solutions
-
3
#include<bits/stdc++.h> using namespace std; int n,a[105]; int main(){ cin>>n; for(int i=0;i<n;i++) cin>>a[i]; sort(a,a+n); int x=n;//用x记录n for(int i=0;i<x;i++){ if(a[i]==a[i+1]){ a[i]=0;//不用删,标0即可 n--; } } cout<<n<<endl; for(int i=0;i<x;i++) if(a[i]) cout<<a[i]<<' '; return 0;//不必多言 }
看了半天没发现怎么用struct
-
2
set(集合)是一种去重,排序的STL数据容器
所以简简单单:
#include<iostream> #include<set> using namespace std; int main() { set<int>s;//创建集合 int t; cin>>t; for(int i=0;i<t;i++) { int x; cin>>x; s.insert(x);//入集合 } cout<<s.size()<<endl;//输出集合长度 for(set<int>::iterator i=s.begin();i!=s.end();i++) { //因为不能用[]索引,所以用指针迭代 cout<<*i<<" ";//*解释数据 } }
-
1
没用结构体
using namespace std; int hasp[1100]; int arr[110]; int ans[110]; int main(){ int n,aaa; cin>>n; aaa=n; for(int i=0;i<n;i++) cin>>arr[i]; sort(arr,arr+n); for(int i=0;i<n;i++) if(arr[i+1]==arr[i]) aaa--; cout<<aaa<<endl; for(int i=0;i<n;i++){ if(hasp[arr[i]]==0) cout<<arr[i]<<' '; hasp[arr[i]]=1; } return 0; }
-
0
-
0
#include <bits/stdc++.h> using namespace std; int a[105],cnt; int main(int argc, char **argv){ int n; cin >> n; for (int i = 0;i < n;i++){ cin >> a[i]; } sort(a,a + n); int o = 0,c; for (int i = 0;i < n;i++){ c = a[i]; if (c != o){ cnt++; o = c; } } printf("%d\n",cnt); o = 0; for (int i = 0;i < n;i++){ c = a[i]; if (c != o){ printf("%d ",c); o = c; } } return 0; }
- 1
Information
- ID
- 670
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 130
- Accepted
- 54
- Uploaded By