代码随想录算法训练营第六天 |242.有效的字母异位词 、349. 两个数组的交集、202. 快乐数、1. 两数之和
使用数组来做哈希的题目是因为题目限制数组大小,如果分散的话不要使用数组,会造成极大的空间浪费
242.有效的字母异位词
题目链接:242.有效的字母异位词
- 暴力法
- 哈希法 长度26的数组
- hashmap理论上应该可以,还没尝试过
349. 两个数组的交集
题目链接:349. 两个数组的交集
unordered_set<int>(nums1.begin(), nums1.end())可以直接把vector装到set中- 一个set用来装第一个数组的集合,第二个在遍历第二个数组的时候用来装结果集
202. 快乐数
题目链接:202. 快乐数
- 不停地往集合里添加数
- 如果检测到循环则说明不是快乐数
1. 两数之和
题目链接:1. 两数之和leetcode.cn/problems/ha…)
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> map1;
for(int i = 0; i < nums.size(); i++) {
if(map1.find(target - nums[i]) != map1.end()) {
int index2 = map1.at(target - nums[i]);
return vector<int>{i, index2};
} else {
map1.insert(pair<int, int> (nums[i], i));
}
}
return vector<int>{-1, -1};
}
};