242.有效的字母异位词
题目:242.有效的字母异位词
文本:242.有效的字母异位词
视频:242.有效的字母异位词
代码
bool isAnagram(string s, string t) {
unordered_map<char,int> maps;
unordered_map<char,int> mapt;
int len_s = s.size()-1;
int len_t = t.size()-1;
while(len_s>=0)
{
maps[s[len_s]]++;
len_s--;
}
while(len_t>=0)
{
mapt[t[len_t]]++;
len_t--;
}
if(maps==mapt)
{
return true;
}
else return false;
}
349. 两个数组的交集
题目:349. 两个数组的交集
文本:349. 两个数组的交集
视频:349. 两个数组的交集
代码
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int>set1;
unordered_set<int>set2;
unordered_set<int>result;
int nums1_len = nums1.size()-1;
int nums2_len = nums2.size()-1;
while(nums1_len>=0)
{
set1.insert(nums1[nums1_len]);
nums1_len--;
}
while(nums2_len>=0)
{
set2.insert(nums2[nums2_len]);
if (set1.count(nums2[nums2_len]))
{
result.insert(nums2[nums2_len]);
}
nums2_len--;
}
vector<int> resu;
for(auto it = result.begin();it != result.end();it++)
{
resu.push_back(*it);
}
return resu;
}
总结
- 看代码随想录发现把set转化为vector竟然直接一句话:
vector<int>(result_set.begin(), result_set.end());
- vector 转set同理
unordered_set<int> nums_set(nums1.begin(), nums1.end());
202. 快乐数
题目:202. 快乐数
文本:202. 快乐数
视频:202. 快乐数
代码
int getNum(int n)
{
int sum=0;
while(n)
{
sum+=(n%10)*(n%10);
n/=10;
}
return sum;
}
bool isHappy(int n) {
set<int> n_set;
while(1)
{
int sum = getNum(n);
if(sum==1) return true;
if(n_set.find(sum)!=n_set.end()) return false;
else n_set.insert(sum);
n=sum;
}
}
- 没想到getNum函数单拎出来写,思路有点混乱
1. 两数之和
题目:1. 两数之和
文本:1. 两数之和
视频:1. 两数之和
代码
暴力
vector<int> twoSum(vector<int>& nums, int target){
int n=nums.size();
for(int i = 0;i<n;++i){
for(int j = i+1;j<n;++j){
if(nums[i] + nums[j] == target){
return {i,j};
}
}
}
return {};
unordered_map
vector<int> twoSum(vector<int>& nums, int target) {
undered_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 {};
}
总结
- map是这么添加元素的
map.insert(pair<int,int>(nums[i],i));