题解 | #明明的随机数#
明明的随机数
http://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
C++ set是天然的去重和排序数据结构,因为它的背后是红黑树,下面是供参考的代码:
#include <iostream>
#include <set>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
int N;
set<int> nums;
while(cin >> N) {
for(int i = 0; i < N; i++) {
int tmp;
cin >> tmp;
if(nums.find(tmp) == nums.end())
nums.insert(tmp);
}
for(auto iter:nums)
cout << iter << endl;
nums.clear();
}
return 0;
}
其中几个注意的点这里说一下,
- if(nums.find(tmp) == nums.end()) 这里是== 不是!= ,有时候正是这种看似简单的地方容易犯错。
- set nums 需要放在while循环里面或者如上代码,在while循环的末尾加上nums.clear()。