class Solution {
public:
bool isAnagram(string s, string t) {
int record[26]={0};
for(int i=0;i<s.size();i++)
{
record[s[i]-'a']++;
}
for(int i=0;i<t.size();i++)
{
record[t[i]-'a']--;
}
for(int i=0;i<26;i++)
{
if(record[i]!=0)
return false;;
}
return true;
}
};
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int>result;
unordered_set<int>nums(nums1.begin(),nums1.end());
for(int num:nums2)
{
if(nums.find(num)!=nums.end())
result.insert(num);
}
return vector<int>(result.begin(),result.end());
}
};
class Solution {
public:
int getnum(int n)
{
int sum=0;
while(n>0)
{
sum+=(n%10)*(n%10);
n/=10;
}
return sum;
}
bool isHappy(int n) {
unordered_set<int>num;
while(1)
{
int sum=getnum(n);
if(sum==1)
return true;
if(num.find(sum)!=num.end())
return false;
else
num.insert(sum);
n=sum;
}
return false;
}
};
不太会用map,背着打了一遍
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
std::unordered_map <int,int> map;
for(int i = 0; i < nums.size(); i++) {
auto iter = map.find(target - nums[i]);
if(iter != map.end()) {
return {iter->second, i};
}
map.insert(pair<int, int>(nums[i], i));
}
return {};
}
};
总结:哈希表其实就是掌握各个数据结构的不同点,但我平常不怎么用哈希表,可能还需要点时间练习