AcWing 425. 明明的随机数【排序 & 去重】
原题链接
简单
作者:
繁花似锦
,
2021-02-09 12:28:43
,
所有人可见
,
阅读 304
排序(sort) & 去重(unique)
写法一:unique()
函数把相邻重复的元素移到最后面,返回不重复最后一个元素的指针
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 110;
int n;
int a[N];
int main()
{
cin >> n;
for(int i = 0;i < n;i ++ ) cin >> a[i];
sort(a,a + n);
int cnt = unique(a,a + n) - a;
cout << cnt << endl;
for(int i = 0;i < cnt;i ++ ) cout << a[i] <<' ';
return 0;
}
写法二:手动实现unique()
函数
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 110;
int n;
int a[N],b[N];
int main()
{
cin >> n;
for(int i = 0;i < n;i ++ ) cin >> a[i];
sort(a,a + n);
int cnt = 0;
// 手动实现unique()函数,还是要先排序
for(int i = 0;i < n;i ++ )
if(a[i] != a[i - 1] || i == 0) b[cnt ++ ] = a[i];
cout << cnt << endl;
for(int i = 0;i < cnt;i ++ ) cout << b[i] <<' ';
return 0;
}