题目链接:P1059 明明的随机数
题解: 标记一下就行,注意vis数组要大点,数字可能不只是三位数;
参考代码1.0: sort加标记
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm>
#define INF 0x3f3f3f3f
#define MAX 20010
using namespace std
;
int N
, s
[110], res
;
bool vis
[1010], vs
[1010];
int main()
{
cin
>> N
;
for(int i
= 0; i
< N
; i
++) cin
>> s
[i
];
sort(s
, s
+ N
);
for(int i
= 0; i
< N
; i
++)
{
if(vis
[s
[i
]]) continue;
res
++; vis
[s
[i
]] = true;
}
cout
<< res
<< endl
;
for(int i
= 0; i
< N
; i
++)
{
if(vs
[s
[i
]]) continue;
cout
<< s
[i
] <<" "; vs
[s
[i
]] = true;
}
return 0;
}
参考代码2.0: STL的set,自动排序,自动去重
#include <set>
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm>
#define INF 0x3f3f3f3f
#define MAX 20010
using namespace std
;
set
<int> s
;
int N
, a
;
int main()
{
cin
>> N
;
for(int i
= 0; i
< N
; i
++) cin
>> a
, s
.insert(a
);
cout
<< s
.size() << endl
;
for(set
<int>::iterator it
= s
.begin(); it
!= s
.end(); it
++)
{
cout
<< *it
<<" ";
}
return 0;
}
转载请注明原文地址: https://mac.8miu.com/read-514471.html