Skip to content

力扣集合算法题分类解析

1. 哈希集合基础应用(Set)

类型特点:哈希集合用于快速判断元素是否存在、去重、统计出现次数等基础操作。常用于检查重复元素、交集、并集等问题。

难度题目核心思路简介
简单217. 存在重复元素使用 Set 判断是否有重复元素
简单349. 两个数组的交集用 Set 存储一个数组,遍历另一个数组判断是否存在
简单202. 快乐数用 Set 记录出现过的数,判断是否进入循环
简单136. 只出现一次的数字可以用 Set 但更优解是异或;Set 解法:出现两次则删除,最后剩下的即答案
简单141. 环形链表用 Set 存储已访问的节点,判断是否有环

2. 哈希映射进阶应用(Map)

类型特点:哈希映射用于存储键值对,常用于统计频率、记录索引、缓存计算结果等。是解决两数之和字母异位词LRU缓存等问题的核心工具。

难度题目核心思路简介
简单1. 两数之和用 Map 存储元素值和下标,遍历时查找 target - nums[i]
简单383. 赎金信用 Map 统计 magazine 字符出现次数,检查 ransomNote 是否够用
中等49. 字母异位词分组将排序后的字符串作为 Map 的键,分组存储
中等3. 无重复字符的最长子串用 Map 存储字符最近出现的位置,滑动窗口时更新左边界
中等146. LRU 缓存哈希表 + 双向链表实现 O(1) 的 get 和 put
中等347. 前 K 个高频元素先用 Map 统计频率,再用优先队列(堆)取 Top K
困难76. 最小覆盖子串用两个 Map 或数组记录字符出现次数,滑动窗口寻找最小覆盖子串
中等560. 和为 K 的子数组前缀和 + Map 优化,Map 存储前缀和出现的次数

3. 并查集(Union-Find)

类型特点:并查集是一种树型数据结构,用于处理不相交集合的合并与查询问题。常用于连通分量朋友圈岛屿数量最小生成树等场景 。

难度题目核心思路简介
中等547. 省份数量并查集统计连通分量个数,或 DFS/BFS 遍历
中等200. 岛屿数量可用 DFS/BFS,也可用并查集合并相邻的陆地
中等684. 冗余连接并查集,当发现两个节点已经连通时,当前边即为冗余边
中等721. 账户合并将邮箱作为节点,用并查集合并属于同一账户的邮箱
中等990. 等式方程的可满足性先将相等关系的变量合并,再检查不等关系是否矛盾
困难128. 最长连续序列可用并查集,但更常用 Set 进行 O(n) 解法
困难765. 情侣牵手并查集计算连通分量,最少交换次数 = 总情侣对数 - 连通分量数

4. 集合与其他算法的结合

类型特点:集合作为辅助数据结构,与其他算法(如 DFS、BFS、回溯、贪心)结合使用,用于去重、剪枝、记录状态等。

难度题目核心思路简介
中等90. 子集 II回溯 + 排序 + 同层去重(可用 Set 但更优是用判断条件)
中等47. 全排列 II回溯 + 同层去重,可用 Set 记录已使用的元素值
中等36. 有效的数独用三个二维数组或 Set 记录行、列、九宫格中已出现的数字
困难37. 解数独回溯 + 用三个二维数组记录已填数字,快速判断合法性
中等380. O(1) 时间插入、删除和获取随机元素哈希表 + 动态数组,哈希表存储值到数组下标的映射

刷题建议

  1. 基础先行:从 217. 存在重复元素349. 两个数组的交集 入手,掌握 Set 的基本用法。
  2. Map 进阶:练习 1. 两数之和49. 字母异位词分组,理解键值对的妙用。
  3. 并查集入门:从 547. 省份数量 开始,理解并查集的 find 和 union 操作,然后挑战 684. 冗余连接721. 账户合并
  4. 综合应用:最后尝试 76. 最小覆盖子串128. 最长连续序列,体会集合与其他算法的协同作用。

Released under the MIT License.