Hot100
文章平均质量分 89
好学且牛逼的马
28 软件工程在读
业余嵌入式玩家
非业余 后端开发
web3开发爱好者
你的go学长
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Hot100|12-最大子数组和(LeetCode 53)】
将子数组和问题转化为前缀和差值问题通过维护最小前缀和来优化计算在遍历过程中动态更新最大值这种方法体现了"将复杂问题转化为已知问题"的算法设计思想,是解决子数组和类问题的经典范式。原创 2025-11-18 21:51:05 · 603 阅读 · 0 评论 -
【Hot100|11-LeetCode 239. 滑动窗口最大值 】
该解法的核心是 **“单调队列动态维护窗口内的潜在最大值”:通过入队时的单调性筛选(移除不可能成为最大值的元素)和出队时的边界检查(移除窗口外的元素),确保队首始终是当前窗口的最大值,从而在 O (n) 时间内高效求解。这种 “单调队列” 思路是解决滑动窗口极值问题 ** 的经典范式,可迁移到 “滑动窗口最小值”“滑动窗口内的次大值” 等类似问题中。原创 2025-11-11 10:50:16 · 447 阅读 · 0 评论 -
【Hot100|10-LeetCode 560. 和为 K 的子数组】
该解法的核心是 **“前缀和转化问题 + 哈希表记录频率”:通过前缀和将 “子数组和为 k” 转化为 “两个前缀和的差值为 k”,再用哈希表高效统计符合条件的前缀和出现次数,最终在 O (n) 时间内解决问题。这种 “前缀和 + 哈希表” 的思路是解决子数组和问题 ** 的经典范式,可迁移到 “和为 0 的子数组”“子数组和的范围” 等类似问题中。原创 2025-11-10 11:21:56 · 982 阅读 · 0 评论 -
【Hot100|9-LeetCode 438. 找到字符串中所有字母异位词】
该解法的核心是 **“固定滑动窗口 + 字符频率统计”**,精准利用字母异位词的频率特征,通过高效的数组计数和窗口维护,实现线性时间求解。这种思路不仅适用于本题,还可迁移到类似的字符串匹配问题(如判断子串是否包含目标字符集、统计符合字符频率要求的子串数量等),是处理字符串频率类问题的经典范式。原创 2025-11-08 17:26:36 · 895 阅读 · 0 评论 -
【Hot100|8-LeetCode 3. 无重复字符的最长子串】
该解法的核心是 **“滑动窗口动态维护无重复子串 + 数组高效计数”**:通过right扩展窗口,left收缩窗口确保无重复,用数组计数替代哈希表提升效率,最终在 O (n) 时间和 O (1) 空间内解决问题。这种 “滑动窗口 + 哈希计数” 的思路是解决字符串子串问题的经典范式,可迁移到 “最小覆盖子串”“至多包含两个不同字符的最长子串” 等类似问题中。原创 2025-11-08 16:09:06 · 542 阅读 · 0 评论 -
【Hot100|先导篇 Java算法常用API的调用&易错语法点】
说明:通过Comparator自定义排序规则。示例java运行// 按字符串长度排序。原创 2025-11-08 01:01:00 · 653 阅读 · 0 评论 -
【Hot100 |7 - LeetCode 42. 接雨水】
摘要:本文详细讲解LeetCode 42题"接雨水"的双指针解法。该算法通过维护左右两侧最大值(preMax和sufMax),在单次遍历中动态计算每个位置的积水量:当preMax较小时,左指针位置的积水量由preMax决定;反之右指针位置的积水量由sufMax决定。这种贪心策略实现了O(n)时间复杂度和O(1)空间复杂度的优化,无需额外存储数组。文章从问题分析、思路讲解、代码实现到实例演示,系统性地展示了该经典解法的原理和实现细节,是处理区间积水问题的高效解决方案。原创 2025-11-08 00:50:30 · 510 阅读 · 0 评论 -
【Hot100 | 6 LeetCode 15. 三数之和】
该解法的核心是 **“排序 + 双指针 + 分层去重”**:通过排序简化查找和去重,双指针将内层查找从 O (n²) 优化为 O (n),分层去重确保结果无重复。这种思路不仅适用于三数之和,还可迁移到 “四数之和” 等类似的 “n 数之和” 问题,是面试中高频考察的经典算法思想。原创 2025-11-07 23:49:17 · 936 阅读 · 0 评论 -
【Hot100 |5-LeetCode 11. 盛最多水的容器】
本文介绍了LeetCode 11题"盛最多水的容器"的双指针解法。该方法通过初始化左右指针(数组头尾),计算当前容量后移动较矮的柱子,在O(n)时间内找到最大容量。相比暴力法的O(n²),双指针法利用贪心策略缩小范围,仅需常数空间。关键点在于理解移动较矮柱子的合理性:宽度减小时,唯有提升高度才可能增大容量。实例演示展示了指针移动和容量计算的完整过程,验证了算法正确性。原创 2025-11-07 23:28:57 · 914 阅读 · 0 评论 -
【Hot100|4-LeetCode 283. 移动零 】
该解法的核心是双指针分区思想,通过left划分非零区域,i寻找非零元素,用交换实现原地移动。这种思路不仅适用于 “移动零”,还可迁移到类似的「数组分区问题」(如将数组分为奇数和偶数、正数和负数等),是面试中高频考察的基础算法思路。原创 2025-11-07 23:02:43 · 881 阅读 · 0 评论 -
【Hot100|3 LeetCode 128. 最长连续序列】
摘要:本文详细解析了LeetCode 128题「最长连续序列」的高效解法。该方案利用HashSet实现O(1)快速查找,通过「判断序列起点+向后延伸」的策略,在O(n)时间复杂度内解决问题。核心思路是:通过判断x-1是否存在来确定序列起点,避免重复计算;从起点开始向后延伸查找连续序列;用Math.max动态更新最长长度。文章通过代码逐行解析和实例演示(如数组[100,4,200,1,3,2]的最长序列1-4)验证了算法正确性,并分析了O(n)时间复杂度和O(n)空间复杂度。原创 2025-11-06 23:59:45 · 911 阅读 · 0 评论 -
【HOT100|1 LeetCode 1. 两数之和】
该解法的核心是利用哈希表的快速查找特性,将 “查找互补元素” 的时间从暴力解法的O(n)优化到O(1),整体效率大幅提升。这种 “以空间换时间” 的思路是哈希表的典型应用,也是大厂面试中高频考察的基础算法思想。原创 2025-11-06 23:47:36 · 955 阅读 · 0 评论 -
【Hot100 | 2 LeetCode49 字母异位词分组问题】
add(s)这段代码的核心是利用 “异位词排序后相同” 的特性,通过哈希表快速分组,逻辑清晰且效率较高。其中方法的使用简化了代码,是哈希表操作的高频技巧,也是面试中的常见考点。优化方向?原创 2025-11-06 23:36:10 · 1077 阅读 · 0 评论
分享