
哈希表
leetcode哈希表题目
why_1513
求实求真,大气大气
展开
-
四数之和-力扣
本题在三数之和的基础上,再增加一重循环进行解答。原创 2024-05-29 22:20:17 · 847 阅读 · 0 评论 -
三数之和-力扣
这道题在使用哈希表来做时,做的很吃力,对重复的去除很费劲。原创 2024-05-29 20:57:00 · 345 阅读 · 0 评论 -
赎金信-力扣
这道题想到的解法是使用一个哈希表来存储magazine里每个字符出现的次数,然后遍历ransomNote,出现对应的字母则哈希表中对应的值减一,当查找不到某个字符,或者某个字符的值小于0时,则返回false。在代码随想录看到使用数组做哈希表,在这道题中,使用数组更加简单有效。原创 2024-05-28 21:31:33 · 1487 阅读 · 0 评论 -
四数相加Ⅱ-力扣
做这道题想到的解法是,由于该题只统计元组个数,而不需要位置,那我们首先用一个map来统计数组1和数组2两两元素之和出现的个数,然后去遍历数组3和数组4,在map中寻找 0 - c - d 这个键值是否存在(c和d为数组3和数组4中的元素,如果存在,那么变将元组个数加键值映射的value个。原创 2024-05-28 21:16:44 · 386 阅读 · 0 评论 -
两数之和-力扣
另一种方法是使用哈希表来实现,使用一个map记录每个元素出现的下标,这样遍历到一个元素,只需向map查询是否存在 target - nums[i] 是否存在即可,从而减少了一个for循环,打打降低了时间复杂度。原创 2024-05-28 20:47:24 · 337 阅读 · 0 评论 -
快乐数-力扣
使用一个set来存储遇到的每个数,如果遇到的数在set中,那么说明这个数不是快乐数,否则一直循环下去,直到n = 1结束循环,表示这个数是个快乐数。原创 2024-05-28 20:25:40 · 330 阅读 · 0 评论 -
两个数组的交集Ⅱ-力扣
【代码】两个数组的交集Ⅱ-力扣。原创 2024-05-27 21:21:55 · 188 阅读 · 0 评论 -
两个数组的交集-力扣
但最开始写时,我在第二个for循环内,判断nums2[j]是否在s1中,使用的不是find函数,而是 让nums2[j]插入s1,根据insert的返回值 pair.second 来判断是否存在,此时就出现了一个问题。想到的解法是使用两个哈希表,s1用来统计nums1中出现过的数字,然后遍历nums2数组,当能够在s1中查找到nums2的元素时,将这个元素添加到s2中,最后遍历s2,将其中的元素添加到返回数组中。原创 2024-05-27 20:26:25 · 302 阅读 · 0 评论 -
找到字符串中所有字母异位词-力扣
【代码】找到字符串中所有字母异位词-力扣。原创 2024-05-27 19:49:33 · 261 阅读 · 0 评论 -
字母异位词分组-力扣
首先想到的解法是调用上道题写好的 有效的字母异位词 函数,来对strs中的字符串进行两两判断,然后添加到不同的vector,但转眼一想这样写无疑过于麻烦。在想到上提另一种解法排序后,本题也可以采用排序的方法来做,遍历strs中的每个字符,对这个字符进行排序,那么排序后的 字符 是唯一的,我们将这个排序后的字符作为map的键值,将 str元素组成的vector ,作为map value。那么在一次遍历之后,我们只需对这个哈希表进行遍历,并将每个键值映射的vector添加到一个vector中进行返回即可。原创 2024-05-26 22:11:00 · 289 阅读 · 0 评论 -
有效的字母异位词-力扣
看到题目首先想到的解法是使用unordered_map容器来做,遍历第一个字符串,统计每个char出现的次数,然后遍历第二个字符串,出现一个char,map对应值就减一,最后判断map容器所有键值是否为0,如果全部为0,则返回true,否则返回false。原创 2024-05-26 20:09:40 · 202 阅读 · 0 评论