音乐
音乐
暂未播放
0:00/0:00
暂无歌词
LeetCode | 哈希表
481 字
2 分钟
LeetCode | 哈希表
分类:哈希表 / 总结
讲解#
哈希表题目的核心是:先建一张表,再去表里查东西。
两数之和 把 已经遍历过的数字,以及它的下标放进字典作为哈希表,查target - num 在不在表里,最后返回两个数字对应的下标。
字母异位词分组 把 排序后的字符串(key) -> 原字符串列表(value)放进字典作为哈希表,,查当前字符串排序后的 key在不在表里,最后返回字典里所有 value,也就是分好组的字符串列表。
最长连续序列 把 nums 通过set(nums)去重后的所有数字放进集合作为哈希表,查先查 x - 1 在不在确定是不是序列起点,再不断查 x + 1、x + 2、…在不在表里,最后返回最长连续序列的长度。
哈希表题目重要是:我应该把什么变成 key,又要用这个 key 查什么。
代码#
两数之和#
1class Solution:2 def twoSum(self, nums: list[int], target: int) -> list[int]:3 seen = {}4
5 for i, num in enumerate(nums):6 need = target - num7 if need in seen:8 return [seen[need], i]9
10 seen[num] = i11 return []字母异位词分组(排序法)#
1from collections import defaultdict2from typing import List3
4
5class Solution:6 def groupAnagrams(self, strs: List[str]) -> List[List[str]]:7 mp = defaultdict(list)8
9 for st in strs:10 key = "".join(sorted(st))11 mp[key].append(st)12
13 return list(mp.values())最长连续序列#
1from typing import List2
3
4class Solution:5 def longestConsecutive(self, nums: List[int]) -> int:6 st = set(nums)7 m = len(st)8
9 ans = 010 for x in st:11 if x - 1 in st:12 continue13
14 y = x + 115 while y in st:16 y += 117
18 ans = max(ans, y - x)19 if ans * 2 >= m:20 break21
22 return ans参考资料#
- 两数之和
- 字母异位词分组
- 最长连续序列
- LeetCode 两数之和:https://leetcode.com/problems/two-sum/
- LeetCode 字母异位词分组:https://leetcode.com/problems/group-anagrams/
- LeetCode 最长连续序列:https://leetcode.com/problems/longest-consecutive-sequence/
- 力扣两数之和题解:https://leetcode.cn/problems/two-sum/solutions/
- 力扣字母异位词分组题解:https://leetcode.cn/problems/group-anagrams/solutions/520469/zi-mu-yi-wei-ci-fen-zu-by-leetcode-solution/
- 力扣最长连续序列题解:https://leetcode.cn/problems/longest-consecutive-sequence/solutions/3005726/ha-xi-biao-on-zuo-fa-pythonjavacgojsrust-whop/
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
最后更新于 2026-08-03
部分内容可能已过时
相关文章智能推荐
1
LeetCode | 两数之和
LeetCodeLeetCode 两数之和题解:使用 Python 字典作为哈希表,在一次遍历中找到目标下标。
2
LeetCode | 双指针
LeetCode整理 LeetCode 双指针题目的核心思路:用两个指针描述位置或范围,并按规则移动,涵盖移动零、盛水容器、三数之和、接雨水、最长回文子串。
3
LeetCode | 最长连续序列
LeetCodeLeetCode 最长连续序列题解:使用哈希集合只从连续序列起点开始统计最长长度。
4
LeetCode | 反转链表
LeetCodeLeetCode 反转链表题解:使用迭代法逐个翻转节点指向,时间复杂度 O(n),空间复杂度 O(1)。
5
LeetCode | 合并两个有序链表
LeetCodeLeetCode 合并两个有序链表题解:双指针遍历比较节点值,dummy 虚拟头节点串联结果链表。
随机文章随机推荐
暂无随机文章
评论区
分享你的想法,与大家交流讨论
--
总访问量
--
访客数
公告
音乐
音乐
暂未播放
0:00/0:00
暂无歌词
站点统计
文章
66
分类
16
标签
93
总字数
477,284
运行时长
0 天
最后活动
0 天前
最新动态



