哈希表
文章平均质量分 90
leetcode哈希表类题目
百里守约学编程
你会的越多,不会的越多。
展开
-
1. 两数之和
本题呢,我就需要一个集合来存放我们遍历过的元素,然后在遍历数组的时候去询问这个集合,某元素是否遍历过,也就是。因为本题,我们不仅要知道元素有没有遍历过,还要知道这个元素对应的下标,需要使用。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。的那 两个 整数,并返回它们的数组下标。,请你在该数组中找出 和为目标值。:你可以想出一个时间复杂度小于。首先强调一下 什么时候使用哈希法,那么我们就应该想到使用哈希法了。你可以按任意顺序返回答案。只会存在一个有效答案。原创 2024-09-16 21:14:15 · 722 阅读 · 0 评论 -
242. 有效的字母异位词(排序后用Map或者滑动窗口用Map)
异位词排序之后的字符串是相等的,所以可以以s的每一个字符作为起点,取和p相同长度的字符,看看排序后是否相等即可。字母异位词(字母异位词是通过重新排列不同单词或短语的字母而形成的单词或短语,并使用所有原字母一次。最后如果record数组所有元素都为零0,说明字符串s和t是字母异位词,return true。那看一下如何检查字符串t中是否出现了这些字符,同样在遍历字符串t的时候,对。的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。原创 2024-09-16 18:53:13 · 608 阅读 · 0 评论 -
383. 赎金信
因为题目说只有小写字母,那可以用一个长度为。一些同学可能想,用数组干啥,都用。去验证这个数组是否包含了。原创 2024-09-16 22:36:27 · 494 阅读 · 0 评论 -
349. 两个数组的交集
给定两个数组nums1和nums2,返回 它们的交集。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序。原创 2024-09-16 20:38:45 · 155 阅读 · 0 评论 -
202. 快乐数
这题的关键其实就是在于什么时候可以退出循环,如果某一步计算出的结果发现曾经出现过了,说明后续结果也会一直不断重复,会进入了无限循环,此时我们应该退出了。而判断一个数字是否出现过,第一反应就是使用。中已存在,即进入了死循环,则退出;因此思路就很清晰了,首先定义一个。编写一个算法来判断一个数。集合,用来存放计算后的。或者进入死循环就返回。原创 2024-09-16 21:06:00 · 156 阅读 · 0 评论 -
454. 四数相加 II
并不合适使用哈希法,因为三数之和和四数之和这两道题目使用哈希法在不超时的情况下做到对结果去重是很困难的,很有多细节需要处理。,答案中不可以包含重复的四元组,大家可以思考一下,后续的文章我也会讲到的(实际就是回溯法的版块了)。如果本题想难度升级:就是给出一个数组(而不是四个数组),在这里找出四个元素相加等于。就可以,不用考虑有重复的四个元素相加等于。而这道题目是四个独立的数组,只要找到。本题是使用哈希法的经典题目,而。,请你计算有多少个元组。差不多,其实差很多。的情况,所以相对于题目。原创 2024-09-16 22:22:36 · 618 阅读 · 0 评论 -
15. 三数之和(实际是双指针类型的题目)
给你一个整数数组nums,判断是否存在三元组满足,同时还满足。请你返回所有和为0且不重复的三元组。注意:答案中不可以包含重复的三元组。3<=numslength<=3000−105<=numsi<=105两层for循环就可以确定a和b的数值了,可以使用哈希法来确定0-(a+b)是否在 数组里出现过,其实这个思路是正确的,但是我们有一个非常棘手的问题,就是题目中说的不可以包含重复的三元组。把符合条件的三元组放进[][]int。原创 2024-09-16 23:06:04 · 509 阅读 · 0 评论 -
18. 四数之和(实际是双指针类型的题目)
请你找出并返回满足下述全部条件且不重复的四元组。你可以按 任意顺序 返回答案。原创 2024-09-16 23:39:23 · 623 阅读 · 0 评论