哈希表 ¶
约 385 个字 预计阅读时间 2 分钟
什么算法题会用到哈希表?¶
- “找有没有” / “找配对”(你刚做的两数之和就是典型) 题目问:是否存在两个数/两个元素能满足某个条件?
思路:遍历时,把“我缺的那个数”记在哈希表里。之后遇到新数,直接查表看看我缺不缺它。
类似题:三数之和(部分去重用
- “数数” / “统计出现次数” 题目问:每个元素出现了几次? 或者 找出出现次数最多的/唯一不重复的。
思路:用哈希表记录每个东西出现的次数(Key 是元素,Value 是次数
类似题:有效的字母异位词(统计字母次数
- “去重” / “是否重复” 题目问:有没有重复的数字/字符? 或者 去掉重复项。
思路:用哈希表(或者 Python 的集合 set)记录已经见过的元素,如果再次出现就说明重复了。
类似题:存在重复元素、环形链表(判断链表有没有环,用集合存节点
- “记忆化” / “缓存中间结果” 题目问:计算过程中有大量重复计算,要求优化速度。
思路:把算过的结果存进哈希表,下次遇到同样的输入,直接拿结果,不用再算一遍。
类似题:斐波那契数列(递归优化