文章
11
粉丝
223
获赞
14
访问
55.8k
法1. STL中的unordered_set容器类(也可以用set)非常适合解决这个问题。
对于unordered_set:
其查找操作和插入操作的时间复杂度都是O(1)
#include <iostream>
#include <set> // or unordered_set
using namespace std;
int main()
{
int n, q, num;
cin >> n;
set<int> s; // or unordered_set
for (int i = 0; i < n; ++i)
{
cin >> num;
s.insert(num);
}
cin >> q;
for (int i = 0; i < q; ++i)
{
cin >> num;
if (s.count(num))
cout << "find" << endl;
else
{
s.insert(num);
cout << "no" << endl;
}
}
return 0;
}
法2. 用STL中的map容器也可以简洁完成这个任务。
#include <iostream>
#include <map>
using namespace std;
int main()
{
int n, q, num;
cin >> n;
map<int, int> m; // 数字 -> 出现次数
for (int i = 0; i < n; ++i)
{
cin >> num;
m[num...
登录后发布评论
学习了