
力扣刷题笔记——哈希表
力扣有关链表的题目
四维sun
一名努力学习的程序媛!
展开
-
力扣500——键盘行
思路:用哈希表来存储键盘的所有字母(包括大小写),对第一行字母的值都为1,第二行字母的值都为2,第三行字母的值都为3,然后遍历数组,对数组中的每个单词进行遍历,在哈希表中找到单词的第一个字母,将它对应在哈希表中的值用m记录,然后遍历该单词,比较每个字母在哈希表中对应的值和m是否相等,(用flag记录单词是否完全遍历了)如果不相等就结束当前单词的遍历,flag=1,当一个单词遍历完全遍历完了,则说明该单词满足要求,添加到字符串数组vec中。代码:classSolution{...原创 2021-12-30 18:08:57 · 345 阅读 · 0 评论 -
力扣409——最长回文串
思路:对于回文串,长度可以是偶数,可以是奇数,如果是偶数,则每个字符出现的次数应该为偶数;如果是奇数,则有一个字符出现的次数可以为奇数,其他字符出现的次数都为偶数用哈希表来存放字符串,哈希表的键对应字符,值对应该字符的数量。用迭代器来遍历哈希表,元素数量为偶数的可以直接加到num中,数量为奇数的-1再加到num中,并且对于数量为奇数的元素,要修改flag的值为1,因为回文串中间可以放一个元素,在最后num中要加上flag代码:...原创 2021-12-30 16:25:59 · 360 阅读 · 0 评论 -
力扣496—下一个更大元素I
思路:用哈希表哈希表中存放nums2中的元素和对应的下标,创建数组vec用来存放每次查询的结果,作为最后的返回值。遍历数组nums1,在哈希表中找nums1[i],因为nums1是nums2的子集,所以一定能找到。un_map[nums1[i]]代表该元素在nums2中的下标,用j来记录该元素在nums2中的下一个元素下标,j=un_map[nums1[i]]+1;从这开始遍历数组nums2,如果找到nums2[j]>nums1[i]的值,则说明本次查询的答案为nums2[j],找...原创 2021-12-30 15:23:42 · 386 阅读 · 0 评论 -
力扣——面试题16.15、珠玑妙算
思路: 用哈希表来存储guess中的字符和对应的次数,数组vec(2)用来存储猜中次数和伪猜中次数,total用来存储总猜中次数,即总猜中次数=猜中次数+为猜中次数。遍历字符串guess存入后,再遍历字符串solution,如果guess[i]==solution[i],说明该字符猜中了,vec[0]++,如果un_map[solution[i]]!=0,total++;并且要使哈希表中的un_map[solution[i]]--。最后用总次数减去...原创 2021-12-29 15:42:37 · 281 阅读 · 0 评论 -
力扣刷题1160——拼写单词
思路:创建两个相同的哈希表,首先遍历字符串chars,哈希表的键存储字符,值存储字符在字符串的个数。然后便来字符串数组,遍历字符串数组中每个单词的字符,如果在哈希表中找到该字符并且该字符的数量不为0,则说明该字母满足条件,可以继续遍历,哈希表中该字母的数量减1(因为每次拼写一个单词时chars中的字母只能用一次);如果没有找到或该字符的数量为0,则说明这个单词不满足条件,结束当前单词的遍历,去遍历下一个单词。定义布尔类型变量flag,用来记录遍历的单词是否满足条件,然后决定要不要加入该单词的..原创 2021-12-29 11:22:57 · 278 阅读 · 0 评论 -
力扣刷题1——两数之和
题目:给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 :输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。来源:力扣(LeetCode)链接:htt...原创 2021-12-09 22:19:30 · 96 阅读 · 0 评论