哈希表用于快速判断一个元素是否在集合内。可以把哈希函数当作“对暗号”,每个机构给一个暗号,当有人来问机构a来了没有,“天王盖地虎”对上了,直接返回机构a的位置。
242、有效的字母异位词
关键点1:‘a’表示单个字符,“a”表示字符串。
关键点2:小写英文字母只有26个,是有限的,所以可以用数组。
349、两个数组的交集
关键点1:返回是交集,不可重复,所以用unordered_set。
关键点2:哈希表所用容器可以用.find(),.end(),.begin()方法,.find()返回的是迭代器。
202、快乐数
关键点1:数字每个位置的平方和计算方法:
int getsum(int n)
{
int sum = 0;
while(n != 0)
{
sum += (n%10) * (n%10);
n = n/10;
}
return sum;
}
1、两数之和
关键点1:之所以用map是因为需要两个数,val和下标。
关键点2:遍历每个数,求差值,.find()检查map里是否有key值等于差值。kei为值,value为在数组中的下标。
关键点3:创建map方法:unordered_map<int,int> map;
插入元素方法:map.insert(pair<int,int>(a,b));