
java数据结构学习——hash表
文章平均质量分 58
跟着代码随想录学习
江弦凤歌
24:研0备战开发~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
383. 赎金信
一开始我看到这道题,觉得和四数相加很类似,准备创建一个HashMap来存储key:a~z,value:为次数,的这样一个键值对,更新就使用刚刚提到过的 map.getOrDefault(key, default)方法。然后,对赎金信件也进行遍历,使用map.getOrDefault方法更新,只是现在要写成map.put(key, map.getOrDefault-1)来进行更新。但是实际上这道题最类似的是我们最开始做的,异位词那道题,使用数组存储即可,没必要用到map,使用数组会更加简单。原创 2024-12-02 13:39:27 · 231 阅读 · 0 评论 -
454.四数相加II
首先,我们只要求四个数组中各出一个元素之和为0,直接for循环遍历,显然时间复杂度过于离谱了。然后,再计算另外两个数组直接元素的和,在我们的 map 中,寻找是否有为其相反数的 key,将key 对应的次数累加到 res上,若没有,就累加0。那这么样才能将 次数更新到对应的数组和中呢,这需要一个方法getOrDefault(key, default)——在下面会给出展示。若key存在,返回其对应的value,若key不存在,返回我们设定的默认值 default。这道题为什么可以拆解为两两数组之和?原创 2024-12-02 12:18:36 · 336 阅读 · 0 评论 -
1.两数之和:
我们可以定义一个中间变量 temp = target - nums[i],然后去查找 temp 是否已经出现过了,如果出现过了,那不就说明我们寻找到了我们要找的两个数了吗(一个为 temp——以前存放的nums元素,另一个是现在的 nums[i] ),那我们只需要返回 temp 对应的下标 以及当前的 i即可。我们可以知道,不会出现输入的数组是[3,3,4],target 为 7的情况,这样我们的答案不唯一,没法操作。好的,现在我们理清了题目的要求,那我们可以开始做题了。整数,并返回它们的数组下标。原创 2024-12-02 11:26:08 · 425 阅读 · 0 评论 -
202. 快乐数:
所以我们可以使用哈希表,不断将我们的n值传递进去,在循环条件中判断 我们创建的集合是否已经包含了 n 这个元素,要是包含了,就说明构成了无限循环,若没包含,那么我们就继续更新 n ,直到 n 是1或者 n 已经存在于哈希表中。好的,现在我们知道了怎么判断快乐数了,但是又有一个新的问题,怎么知道是不是无限循环呢?,那么这个数就是快乐数。我们先编写一个更新函数,返回的结果为每个位置的数字的平方和,这个很好写,就不赘述了。什么是快乐数呢,其实没必要管它的那一段话,我们只需要知道,当结果为1时,就是快乐数。原创 2024-12-01 23:41:25 · 368 阅读 · 0 评论 -
349. 两个数组的交集:
并不需要,我们可以直接创建一个 resSet 来存取数组的交集,怎么判断是否要添加呢?HashSet中提供了contains(key)来判断是否存在该元素,若 nums2 中的元素存在于 set1 中,那么就将该元素添加到 resSet 中。所以我们需要进行类型转换,或者将 resSet 中存储的对象存放到一个 int[] 对象中。我们先创建一个编译类型为 Set 的 set1,泛型设定为,用来将 nums1 中的数据取出,并存放于 set1 中(使用HashSet的add方法)。原创 2024-12-01 22:15:49 · 309 阅读 · 0 评论 -
0.Hash表的理论基础:
当我们遇到了要快速判断一个元素是否出现在集合里的时候,就要考虑哈希法。但是哈希发是牺牲了空间换取时间。若我们在面试或者算法题中遇到需要判断一个元素是否出现过的常见,那我们应该想到哈希法。原创 2024-12-01 21:45:56 · 300 阅读 · 0 评论 -
242.有效的字母异位词:
从a~z(本题只考虑小写)一共有26个字符,且其ASCII码是连续的,我们可以使用数组去存储他们。我们再去看下什么叫字母异位词(字母种类数量相同,同种字母数量相同),我们以及解决了字母哦按段字母的种类,现在要做的就是将字母的数量存储到对应的字母索引位置即可,好,那么我们现在已经解决了一个字符串的存储问题了,那我们是否需要开辟两个数组呢?就是不同字母种类个数相同,且同种字母个数相同的两个字符串,类似于 abbc 和 bbac。最后,我们只需要看我们的数组中的值是否均为0,即可以判断是否为异位词了。原创 2024-12-01 13:59:47 · 256 阅读 · 0 评论