哈希基础
数组就是一个哈希表
242. 有效的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
class Solution {
public:
bool isAnagram(string s, string t) {
if (s.size()!=t.size()){
return false;
}
// vector<int> ans(26, 0);
int ans[26] = {0};
for (char s_ : s){
ans[s_ - 'a'] += 1;
}
for (char t_ : t){
ans[t_ - 'a'] -= 1;
}
int res = 0;
for (int i=0; i< 26; i++){
if(ans[i]!=0){
return false;
}
}
return true;
}
};
349. 两个数组的交集
给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
pp
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> set1(nums1.begin(), nums1.end());
// for (int a: nums1){
// set1.emplace(a);
// }
unordered_set<int> set2;
for (int b: nums2){
if (set1.count(b)){
set2.emplace(b);
}
}
// vector<int> ans;
// for (int union_element:set2){
// ans.emplace_back(union_element);
// }
vector<int> ans(set2.begin(), set2.end());
return ans;
}
};