高频面试题数据结构-哈希表操作
文章平均质量分 89
通过例题更深入的理解数据结构,使其具备工程化思维
SoulmateShkart
站在巨人的肩膀。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构算法-哈希表:四数之和
摘要: 本文解析LeetCode四数之和问题,要求从数组中找出所有和为target且不重复的四元组。核心思路包括:1)排序数组以便双指针调整和去重;2)双层循环固定前两数,结合剪枝优化(提前终止无效搜索)和去重逻辑;3)双指针查找后两数,通过比较总和动态调整指针位置。代码实现中注意处理整数溢出和重复元素,确保结果唯一性。算法时间复杂度为O(n³),适用于中等规模数据。原创 2025-11-16 21:07:23 · 944 阅读 · 0 评论 -
数据结构算法-哈希表:三数之和
不信的同学可以去尝试用哈希表做一下,就知道难度了,有点类似大一的时候写的,找出数组中两两不相同的数的组合,不过这里是找不同数组的组合。给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,个人总结学习用,对部分内容进行了简单的处理和归纳,如有谬误,希望大家指出,先说结论:梦破碎的地方!请你找出所有满足条件且不重复的三元组。先对数组排序(关键前提)。用一层 for 循环遍历数组,固定。答案中不可以包含重复的三元组。在数组中找到所有不重复的三元组。重复导致三元组重复)。原创 2025-11-16 20:58:20 · 1296 阅读 · 0 评论 -
高频面试题:数据结构哈希表-快乐数
若平方和重复出现,说明进入闭环,永远无法得到 1,即非快乐数。利用哈希表(HashSet)快速判断元素是否存在的特性,存储已出现的平方和,实现循环检测。个人总结学习用,对部分内容进行了简单的处理和归纳,如有谬误,希望大家指出,原创 2025-11-02 20:28:15 · 588 阅读 · 0 评论 -
数据结构算法:哈希表-赎金信
383. 赎金信 - 力扣(LeetCode)给你两个字符串:ransomNote和 magazine,判断 ransomNote能不能由 magazine里面的字符构成。如果可以,返回true;否则返回false。magazineransomNote赎金信中的两个字符串 ransomNote与 magazine。原创 2025-11-10 18:57:07 · 1009 阅读 · 0 评论 -
数据结构算法-哈希表:四数相加II
摘要:本文介绍了LeetCode 454题"四数相加II"的解题方法。给定四个整数数组A、B、C、D,找出满足A[i]+B[j]+C[k]+D[l]=0的元组数量。核心思路是采用分组+哈希表策略:先将A+B的和存入哈希表(和为键,出现次数为值),然后计算C+D的和,在哈希表中查找对应的相反数。这种方法利用空间换时间,将O(n⁴)复杂度优化为O(n²)。文中提供了Java代码实现,包含详细注释,并给出测试用例验证。该方法适用于数组长度≤500的情况,整数范围在-2²⁸到2²⁸-1之间。原创 2025-11-09 15:04:30 · 1107 阅读 · 0 评论 -
数据结构算法-哈希表:两数之和
力扣题目链接。原创 2025-11-06 21:14:42 · 1182 阅读 · 0 评论 -
数据结构算法之哈希表:两个数组的交集
先明确概念:两个数组的交集,指的是同时存在于两个数组中的元素。比如数组[2,3,6]和[4,6,9],它们的交集就是[6]。需要注意的是,交集是否需要去重?这取决于具体场景。比如原数组有重复元素时(如[2,2,3]和[2,2,2]),是保留所有重复的2还是只保留一个?下面的方法会根据实现逻辑自然处理这一点,我们后面具体说。原创 2025-11-01 20:23:01 · 983 阅读 · 0 评论 -
数据结构之哈希表-有效的字母异位词
摘要:本文探讨了如何判断两个字符串是否为字母异位词的问题。通过分析暴力解法(时间复杂度O(n²))的不足,提出基于数组的哈希表优化方案(时间复杂度O(n))。具体方法是使用长度为26的数组记录字符出现次数:先统计字符串s中各字符频次,再遍历字符串t进行抵消。若最终数组全为0则判定为异位词。代码实现中通过检查长度差异和负值情况提前终止计算,提升效率。该方法适用于仅含小写字母的字符串,具有空间复杂度O(1)的优势。文末附参考文献及代码实现示例。原创 2025-10-30 11:37:18 · 994 阅读 · 0 评论
分享