本文主要是介绍【LeetCode】升级打怪之路 Day 06:哈希表的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今日题目:
- 349. 两个数组的交集 | LeetCode
- 202. 快乐数 | LeetCode
- 1. 两数之和 | LeetCode
- 205. 同构字符串 | LeetCode
- 599. 两个列表的最小索引总和 | LeetCode
目录
- 应用 1 -- 哈希集合
- LeetCode 349. 两个数组的交集 【easy】
- LeetCode 202. 快乐数 【小技巧】
- 应用 2 -- 哈希映射 之 构造哈希表
- LeetCode 1. 两数之和 【classic】
- LeetCode 205. 同构字符串 【easy】
- LeetCode 599. 两个列表的最小索引总和 【easy】
今天的题目也不难,主要学习了使用 HashSet 和 HashMap 来解决一些需要查重或记录 kv 映射关系的问题。
应用 1 – 哈希集合
哈希集合主要用来查重。
LeetCode 349. 两个数组的交集 【easy】
349. 两个数组的交集 | LeetCode
经典的使用 HashSet 来解决问题的题目,较简单。
LeetCode 202. 快乐数 【小技巧】
202. 快乐数 | LeetCode
这个题需要从题干的“无限循环”中推导出可能会有重复循环,进而想到使用 HashSet 来避免一直死循环的问题。
我一开始就没想到这点,导致有点不知道怎么下手。
应用 2 – 哈希映射 之 构造哈希表
什么情况下会想到使用哈希表呢?当我们需要同时得到关联信息时,可以使用哈希表建立 key 与 value 的映射关系。我们需要通过分析题目的相关因素之间的关系,为 key 和 value 选择合适的数据类型。
常见的 key 与 value 的关系有:
key -> 下标
:比如两数之和题目,需要通过一个数字找出它在数组中的下标。key -> 频次
:用于统计使用频率最高的元素key -> 数组
:如果一个键对应的信息是一组元素,可使用数组或链表存储。key -> 平面坐标
:某些矩阵类习题可能会存储坐标;key -> 其他
:一般出现在模拟题中,根据实际需要设计哈希表。
LeetCode 1. 两数之和 【classic】
1. 两数之和 | LeetCode
经典问题了,使用 key -> 下标
形式的哈希映射可以轻松解决。
LeetCode 205. 同构字符串 【easy】
205. 同构字符串 | LeetCode
需要同时使用 HashMap 和 HashSet 用于记录映射关系和查重,题目较容易。
LeetCode 599. 两个列表的最小索引总和 【easy】
599. 两个列表的最小索引总和 | LeetCode
这也是考察对利用 HashMap 来记录 key -> index
关系的一个题目,较为简单。
这篇关于【LeetCode】升级打怪之路 Day 06:哈希表的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!