242. 有效的字母异位词
题目链接:https://leetcode.cn/problems/valid-anagram/
题目难度:简单
文章讲解:https://programmercarl.com/0242.有效的字母异位词.html
视频讲解: https://www.bilibili.com/video/BV1YG411p7BA
题目状态:一次过,哈哈哈
个人思路:
之前在《剑指offer》中做过这个题目,思路就是直接创建两个26位的数组,分别存放两个字符串中出现的小写字母的个数,若最后这两个数组相等,则表示这两个字符串互为字母异位词。
实现代码:
class Solution {
public:
bool isAnagram(string s, string t) {
int sLen = s.size();
int tLen = t.size();
if(sLen != tLen) return false;
vector<int> sCount(26);
vector<int> tCount(26);
for(int i = 0; i < sLen; ++i) {
sCount[s[i] - 'a']++;
}
for(int i = 0; i < tLen; ++i) {
tCount[t[i] - 'a']++;
}
if(sCount != tCount) return false;
return true;
}
};
349. 两个数组的交集
题目链接:https://leetcode.cn/problems/intersection-of-two-arrays/
题目难度:简单
文章讲解:https://programmercarl.com/0349.两个数组的交集.html
视频讲解: https://www.bilibili.com/video/BV1ba411S7wu
题目状态:纠错后通过
个人思路:
- 创建两个
unordered_map<int, int>
类型的表分别存放两个数组中出现的数字和个数; - 创建一个
vector<int>
类型的数组res
用来存放交集; - 遍历第一个
map
,若在第二个map
中找到其键等于第一个map
中的键,将其添加到res
中; - 遍历完成后返回
res
。
实现代码:
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
vector<int> res;
unordered_map<int, int> One;
unordered_map<int, int> Two;
for(auto &num : nums1) {
One[num]++;
}
for(auto &num : nums2) {
Two[num]++;
}
for(auto &num: One) {
if(Two.find(num.first) != Two.end()) {
res.push_back(num.first);
}
}
return res;
}
};
看了代码随想录中的思路,可以用unordered_set
来实现,思路大致类似,但是写的比我好多了,突然发现我代码中的map
用的比较多余,而且不需要将两个数组都存入map
中,代码如下:
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> result_set; // 存放结果,之所以用set是为了给结果集去重
unordered_set<int> nums_set(nums1.begin(), nums1.end());
for (int num : nums2) {
// 发现nums2的元素 在nums_set里又出现过
if (nums_set.find(num) != nums_set.end()) {
result_set.insert(num);
}
}
return vector<int>(result_set.begin(), result_set.end());
}
};
202. 快乐数
题目链接:https://leetcode.cn/problems/happy-number/
标签:map,set,num,int,随想录,part1,vector,哈希,unordered From: https://www.cnblogs.com/frontpen/p/18290097
题目难度:简单
文章讲解:https://programmercarl.com/0202.快乐数.html
题目状态:没有思路