- 博客(10)
- 收藏
- 关注
原创 每日一题#10 数组+哈希表
本文讲解了LeetCode 961题"在长度2N的数组中找出重复N次的元素"的解题思路。题目要求在一个长度为2N的数组中找到重复出现N次的唯一元素。文章介绍了三种解法:1)使用哈希表计数;2)排序后检查相邻元素;3)优化版利用集合快速查找。提供了Python和Java的代码实现,重点分析了最优解(集合法)的时间复杂度O(N)和空间复杂度O(N)。最后总结强调这类简单题目中优化思路的重要性,建议刷题时多思考时间空间效率的提升方法。
2026-01-02 16:07:25
593
原创 每日一题#9 最长连续子数组 元旦快乐!
本文介绍了LeetCode 904题“水果成篮”的滑动窗口解法。题目要求找出包含最多两种不同数字的最长连续子数组长度。解题思路是通过维护一个滑动窗口和哈希表,动态调整窗口边界以保证水果种类不超过两种,同时记录最大窗口长度。文章提供了Python和Java的代码实现,并分析了时间复杂度和空间复杂度均为O(n)和O(1)。最后总结了滑动窗口的通用模板,并推荐了类似题目。作为2026年新年第一篇技术分享,作者鼓励读者持续学习,共同进步。
2026-01-01 09:00:00
701
原创 每日一题#8 二分答案 + BFS
本文分享了一道LeetCode Hard题目"1970. 你能穿过矩阵的最后一天"的解题思路。题目要求找到在矩阵被海水逐渐淹没过程中,从左上角到右下角能走通的最后一天。解题采用"二分答案+BFS"的方法:通过二分法确定天数范围,对每个中间天数用BFS检查路径连通性。时间复杂度为O(m×log m×(row+col)),空间复杂度O(row×col)。这道题是二分答案与图连通性判断的经典模板题,类似题型包括水位上升的泳池游泳等。文章提供了Python和Java代码实现,
2025-12-31 10:29:16
1074
原创 每日一题#7 双重遍历+条件判断
本文讲解如何检测矩阵中的3x3幻方子矩阵。幻方定义为包含1~9不重复数字,且每行、列、对角线之和均为15的子矩阵。解题采用暴力枚举法:遍历所有可能的3x3子矩阵,依次检查数字范围和重复性,验证行列和对角线和是否为15。Python和Java实现均通过双重循环定位子矩阵左上角,使用集合或数组标记数字,并进行多重条件判断。算法时间复杂度为O(rows*cols),空间复杂度O(1),适用于小规模矩阵(rows,cols≤10)。该题考察数组遍历和条件判断基础能力,适合巩固编程基本功。
2025-12-30 09:33:05
856
原创 每日一题#6 DFS+BFS
本文分享了一道有趣的LeetCode题目——756. 金字塔转换矩阵。题目要求根据给定的底层字符串和允许的积木规则列表,判断是否能搭建到金字塔顶层。解题思路采用DFS/BFS搜索方法,通过预处理规则优化查询效率。文章提供了Python和Java两种实现代码,分别采用DFS回溯和BFS迭代方式,并分析了时间复杂度和核心技巧。这道题考察了状态转移与搜索的结合能力,适合练习预处理优化和回溯算法。题目约束条件宽松(n≤8),暴力搜索即可高效解决。
2025-12-29 09:17:45
531
原创 每日一题#5 优先队列
LeetCode 2402是一道经典的模拟+优先队列题,考察了对会议调度问题的建模能力。通过维护空闲和忙碌房间的堆,我们能高效模拟分配过程,避免超时。Python和Java的实现类似,Java需注意long类型处理大时间值。这道题的难点在于处理延迟会议的逻辑,确保优先级正确。刷题时,多练习类似会议室/调度问题,能提升对堆的应用熟练度。欢迎大家在评论区讨论你的解法,如果有疑问随时问我!明天见,下一个“每日一题”继续~
2025-12-27 14:35:33
503
原创 每日一题#4 前缀和+动态规划
本文分享了LeetCode题目2483(商店的最早关门时间)的解法。题目要求在给定顾客访问记录字符串('Y'表示有顾客,'N'表示无顾客)时,找到一个最优关门时间j,使总罚金最小(罚金=开门时的'N'数+关门时的'Y'数)。解题思路是使用前缀和技巧:初始化right_y为总'Y'数,left_n为0,通过一次遍历计算各j对应的罚金,动态更新最小罚金及其对应j。提供了Python和Java代码实现,时间复杂度O(n),空间复杂度O(1)。该解法适用于类似分割点优化问题,推荐练习相关前缀和题目。
2025-12-26 10:11:18
829
原创 每日一题#3 圣诞特辑:用贪心给孩子们最大幸福
本文分享了一道LeetCode贪心算法题目——3075. 最大化所选孩子的幸福感。题目要求在k轮选择中,每轮选一个孩子后未被选孩子的幸福感减1(不低于0),求所选孩子幸福感总和的最大值。解题关键在于通过降序排序优先选择当前幸福感最高的孩子,使得大值被减次数最少。具体步骤为:1)对幸福感数组降序排序;2)累加前k个元素减去其索引的值(若结果非负)。Python和Java实现均采用排序+遍历的方式,时间复杂度O(n log n),空间复杂度O(1)。该题展示了贪心算法"局部最优→全局最优"的
2025-12-25 13:45:00
638
原创 每日一题#2 贪心算法
这道题虽然是 Easy,但完美考察了贪心算法的核心思想:在需要“最小数量覆盖最大资源”时,优先选择局部最优(最大容量)往往能得到全局最优。LeetCode 455. 分发饼干(Assign Cookies)LeetCode 135. 分发糖果(Candy)掌握这种“排序 + 贪心累加”的模板,能轻松秒杀很多贪心类问题。如果你在刷题过程中遇到类似题目,欢迎评论区交流!
2025-12-24 10:56:43
489
原创 每日一题#1 排序与二分查找
本文解决了一个最多选择两个不重叠活动以获得最大价值的问题。通过将活动按开始时间排序,利用二分查找快速定位不重叠活动,并预处理后缀最大值数组来优化计算。算法时间复杂度为O(nlogn),空间复杂度O(n),适用于大规模数据。示例验证和代码实现展示了该方法的正确性与高效性,适用于类似区间调度问题。
2025-12-23 16:19:12
887
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅