0%

算法系列-哈希表

unordered_map<type1,type2> map1

type1类型的数据为key,对应一个type2数据为value。无序表,查询一次时间复杂度为O(n)。

map1.find(x) == map1.end()意思是表中没有key为x1的键-值对

map.clear()是清楚所有现有的键值对

unordered_ser<type> set1

set1中添加元素是set.insert(x),其中x为type类型。

set1.erase(x)是消除set1中的x。set1.count(x)若返回值为0,则说明set1中没有元素x。

49. 字母异位词分组

字符串可是可以直接sort的;

可以auto it一个迭代器来迭代哈希表里的元素

it->second是值

it->first是键

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>> res;
unordered_map<string, vector<string>> map;
for(auto str : strs) {
string key = str;
sort(str.begin(), str.end());
map[str].push_back(key);
}
for(auto it = map.begin(); it != map.end(); it++) {
res.push_back(it->second);
}
return res;

}
};