首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
力扣hot100
JinLing
创建于2025-10-05
订阅专栏
分享个人力扣hot100刷题过程中的经验
等 1 人订阅
共15篇文章
创建于2025-10-05
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
LeetCode热题100——54.螺旋矩阵
该解法采用边界收缩法,定义上下左右四个边界进行分层遍历。主循环依次顺时针遍历四条边并收缩边界。循环结束后,通过判断 top=bottom 或 left=right 访问剩余的单行或单列元素。
LeetCode热题100——73.矩阵置零
最佳解法利用矩阵第一行和第一列作为标记空间,并用两个布尔变量记录其原始零状态。通过两次 O(MN) 遍历,先标记零位,后置零,最终实现了 O(MN) 时间和 O(1) 额外空间的原地算法。
LeetCode热题100——238.除自身以外数组的乘积
采用前缀积和后缀积的组合方法,利用输出数组存储前缀积。通过两次 O(N) 遍历,第一次算左侧乘积,第二次同时算右侧乘积并合并到左侧乘积中.实现了 O(N) 时间和 O(1) 额外空间复杂度。
LeetCode热题100——189.轮转数组
该解法采用三次反转法实现 O(1) 额外空间的数组原地轮转。首先简化步数 k' = k % N,然后通过反转整个数组、反转前 k' 个元素和反转后 N-k' 个元素,将AB 变为 BA
LeetCode热题100——56.合并区间
该解法使用贪心算法。首先按区间起点排序,然后遍历。核心逻辑是将当前区间与正在构建的pre区间比较,若不重叠则将pre存入结果并更新pre,若重叠则更新pre的终点。
LeetCode热题100——53.最大子数组和
使用动态规划求解最大子数组和,时间复杂度为 O(N)。定义 dp[i] 为以nums[i] 结尾的最大和,状态转移方程为dp[i]=max(dp[i−1]+nums[i],nums[i])
LeetCode热题100——560.和为K的子数组
使用前缀和结合哈希表实现 O(N) 统计。通过 S[j-1] = S[i] - k 的关系,算法在遍历中将当前前缀和 S[i] 减去 k,并在哈希表中查找目标S[j-1] 的出现次数,从而实现高效计算
LeetCode热题100——438.找到字符串中的所有字母异位词
使用差值数组滑动窗口方法,通过 O(1)$维护一个 differ计数器来跟踪当前窗口和目标字符串 p 的差异种类数,从而以线性时间复杂度 O(N)完成异位词子串的查
LeetCode热题100——3.无重复字符的最长子串
采用滑动窗口技术,通过外层for循环确定子串起始点l,内层while循环贪心拓展右边界r。利用哈希集合高效检查重复,并在每次l前进时删除旧字符。l和r单向移动,保证时间复杂度为O(N)。
LeetCode热题100——15.三数之和
该解法采用排序加双指针的策略。首先对数组排序,然后固定第一个数 nums[i],并将问题转化为在剩余部分寻找和为 -nums[i] 的两数。通过双指针 L 和 R 向内收缩来调整和
LeetCode热题100——11.盛最多水的容器
该题解使用双指针实现 O(N)最优解。算法从最大宽度开始,每轮计算面积后,贪心地移动高度。较短的指针移动较短板是为寻找更高的边界,从而突破当前高度限制,确保不错过最大面积。当两指针相遇时,循环终止,返
LeetCode热题100——283.移动零
该题解使用双指针(快慢指针 i,j)实现 O(N) 原地操作。通过判断 i 是否等于 j,算法确保只有找到非零元素时才将其赋值覆盖到 j 的位置,并把原 i 位置归零。
LeetCode热题100——128.最长连续序列
该算法利用 Set 实现 O(1) 查找和去重。通过 判断 x-1 不存在 来识别序列起点,确保每个序列只被计算一次。再用 while 循环 找出终点
Leetcode热题100—— 49. 字母异位词分组
采用哈希表(Map) + 排序的方法将字母异位词分组。通过将每个字符串排序生成唯一 Key,利用 Map 的 O(1)查找实现快速分组
Leetcode热题100——1.两数之和
这是一道经典的两数之和问题。 该题解提供了两种解决“两数之和”的方法: 暴力枚举(Brute Force):使用双重循环穷举所有可能的数对 哈希表(Map):利用哈希表