哈希
1.两数之和(unordered_map)
给定一个整数数组 nums 和一个整数目标值 target,返回满足条件的数组下标
思路:用umap,一边遍历,一边装;
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int,int> umap;
vector<int> result;
for(int i = 0; i < nums.size(); i++) {
if(umap.find(target-nums[i]) != umap.end()) {
result.push_back(i);
result.push_back(umap[target-nums[i]]);
}
umap[nums[i]] = i;
}
return result;
}
};
49.字母异位词分组
思路:每次遍历前,先排序,然后用unordered_map<string, vector string>> mp的形式装
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>> result;
unordered_map<string, vector<string>> mp;
for(int i = 0; i < strs.size(); i++) {
string s = strs[i];
sort(s.begin(), s.end());
mp[s].push_back(strs[i]);
}
for(auto it