题目:
P242有效的字母异位数,P349两个数组的交集,P202快乐数,P1两数之和
收获:
1.使用数组,集合(set,主要是unorder_set,无序,无重复)做哈希表。哈希表一般用来快速判断一个元素是否出现在集合里。
2.unorder_set的用法。
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> result_set;
//将nums1的值赋值给nums_set
unordered_set<int> nums_set(nums1.begin(),nums1.end());
for(int i=0;i<nums2.size();i++){
int num=nums2[i];
//nums_set.find()返回一个迭代器(好像和指针差不多),nums_set.edn()同样。
//nums_set.end()指向容器最后一个元素的下一个位置。这行代码意思是如果找到了num,
//就把num插入到result_set中。
if(nums_set.find(num)!=nums_set.end())
result_set.insert(num);
}
//注意类型转换成vector
return vector<int>(result_set.begin(),result_set.end());
}
};
3.复习一下获取一个整数每个位置上值的方法。
int n;
cin>>n;
while(n){
cout<<n%10;//
n/=10;
}
4.学习了解了unordered_map的用法。
auto iter=map.find(nums[i]);//iter是指向map中与nums[i]值相同的值的迭代器
iter->first//表示iter指向的位置的key的值。
iter->second//表示iter指向位置的value的值。
pair<int,int>(2,3)//pair是c++标准库中定义的数据结构,表示一个由两个值组成的一个对
//其中int类型可以根据需要替换成其他类型
pair存储一个对,key和value。
标签:set,nums,day6,随想录,iter,vector,哈希,nums1 From: https://blog.csdn.net/m0_73924943/article/details/137527003