哈希映射
class Solution
{
public:
bool isAnagram(string s, string t)
{
unordered_map<char, int> map;
for (auto& ch : s)
{
if (map.count(ch) == 0)
{
map.emplace(ch, 1);
}
else
{
map[ch]++;
}
}
for (auto& ch : t)
{
if (map.count(ch) == 0)
{
return false;
}
else
{
map[ch]--;
if (map[ch] == 0)
{
map.erase(ch);
}
}
}
if (map.empty() == false)
{
return false;
}
return true;
}
};
哈希集合
class Solution
{
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2)
{
vector<int> v;
unordered_set<int> set;
for (auto& n : nums1)
{
set.insert(n);
}
for (auto& n : nums2)
{
if (set.count(n))
{
v.push_back(n);
set.erase(n);
}
}
return v;
}
};
哈希集合
class Solution
{
public:
bool isHappy(int n)
{
unordered_set<int> set;
while (n != 1)
{
if (set.count(n) == 1)
{
return false;
}
set.insert(n);
int sum = 0;
while (n != 0)
{
sum += (n % 10) * (n % 10);
n /= 10;
}
n = sum;
}
return true;
}
};
哈希映射
class Solution
{
public:
vector<int> twoSum(vector<int>& nums, int target)
{
vector<int> v;
unordered_map<int, int> map;
for (int i = 0; i < nums.size(); i++)
{
if (map.count(target - nums[i]) == 1)
{
v.push_back(map.at(target - nums[i]));
v.push_back(i);
break;
}
map.emplace(nums[i], i);
}
return v;
}
};