分类
查找有无
查找’a’是否存在?使用集合:set,unordered_set查找对应关系(键值对应)
元素’a’出现了几次?使用字典:map,unordered_map
set & map基本用法
- insert
- find
- erase
- change (map)
举例说明(LeetCode)
349. Intersection of Two Arrays
求两个集合的交集元素,相同元素只记录一次。
#include <iostream>
#include <vector>
#include <unordered_set>
using namespace std;
// 求两个集合的交集
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> record(nums1.begin(), nums1.end());
unordered_set<int> ret;
for (int i = 0; i < nums2.size(); i++){
if (record.find(nums2[i]) != record.end()){
ret.insert(nums2[i]);
}
}
return vector<int>(ret.begin(), ret.end());
}
350. Intersection of Two Arrays II
求两个集合的交集元素,相同元素需要记录次数。
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int, int> record;
for (