算法学习(查找表相关的问题)
2021-12-22 本文已影响0人
SEU小翔哥
set 和 map 常见操作
insert, find, erase, change(map),count
set:
record.find(x) != record.end() //查看set里面有没有x这个元素
res_set.insert(x) // 在set中插入x这个值
unordered_set<int> record(nums1.begin(), nums1.end()) //将vector的值赋值给set
vector<int> res_vector(res_set.begin(),res_set.end()) //将set的值赋值给vector
map:
record.count(x) //判断record哈希表中有没有x
LeetCode 349 两个数组的交集,方法:set的使用
image.pngLeetCode 350 两个数组的交集II, 方法:map的使用
image.pngLeetCode 242 有效的字母异位词(练习),完成,方法:hash_map
image.pngLeetCode 202 快乐数(练习), 完成,方法:用哈希集合检测循环
image.pngLeetCode 290 单词规律(练习), 完成,方法:双哈希表
image.pngLeetCode 205 同构字符串(练习), 完成, 方法:双哈希表
image.pngLeetCode 451 根据字符出现频率排序(练习), 完成,方法:哈希表+对含pair的vector排序
sort(vec.begin(), vec.end(), [](const pair<char,int> &a, const pair<char,int> &b){return a.second > b.second;});
image.pngLeetCode 1 两数之和,方法哈希map
image.pngLeetCode 15 三数之和(练习),完成,方法:双指针。hash表效率很低
image.pngLeetCode 18 四数之和(练习),完成,方法:双指针
image.pngLeetCode 16 最接近三数之和(练习)完成,方法:双指针。
image.pngLeetCode 454 四数相加
image.pngLeetCode 49 字母异位词分组(练习),完成,方法:哈希表
vector<vector<string>> res;
unordered_map<string,vector<string>> record;
for(auto it = record.begin(); it != record.end(); ++it){
res.push_back(it->second);
}
image.png