从0到1算法学习
文章平均质量分 92
从0到1算法学习
Aision_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode,第188题“买卖股票的最佳时机 IV
本文介绍了LeetCode第188题"买卖股票的最佳时机IV"的动态规划解法。该题要求最多进行k次交易获取最大利润,是之前股票买卖问题的泛化版本。作者通过分析状态转移规律,将交易次数抽象为2k+1个状态(买入/卖出交替),并用双重循环实现递推:外层遍历天数,内层遍历交易状态。奇数状态表示买入,偶数状态表示卖出,初始化时将第0天的奇数状态设为-prices[0]。最终返回最后一天完成k次交易后的最大利润。文章展示了Java和Python的实现代码,体现了动态规划在解决复杂股票交易问题中的强原创 2026-05-06 15:06:53 · 270 阅读 · 0 评论 -
LeetCode第123题“买卖股票的最佳时机 III
这篇文章详细解析了LeetCode第123题"买卖股票的最佳时机 III"的动态规划解法。该题限制最多只能完成两笔交易,属于困难级别。作者通过五步法推导动态规划思路:1)定义五种状态(两次买卖的不同阶段);2)推导状态转移方程,分别处理第一次买入、卖出和第二次买入、卖出的情况;3)初始化第0天的状态;4)从前向后遍历实现状态转移。最终给出的Java和Python代码实现展现了如何通过二维数组记录各状态下的最大收益。文章强调,尽管题目难度较高,但通过系统化的动态规划框架,可以有条不紊地解决原创 2026-05-06 14:57:00 · 356 阅读 · 0 评论 -
LeetCode第121题:买卖股票的最佳时机
本文介绍了LeetCode第121题"买卖股票的最佳时机"的三种解法。首先分析了暴力解法的时间复杂度问题,然后重点讲解了贪心算法和动态规划的实现思路。贪心算法通过维护最低价格和最大利润两个变量实现O(n)时间复杂度的求解。动态规划则通过定义持有/不持有股票两种状态,推导状态转移方程,并给出了Java和Python的实现代码。文章最后指出,虽然贪心解法更简洁,但掌握动态规划思路对解决股票问题的其他变种更有帮助。通过系统梳理,作者加深了对状态转移和算法优化的理解。原创 2026-05-06 14:43:48 · 391 阅读 · 0 评论 -
LeetCode 135. 分发糖果:两次遍历+贪心
这篇文章介绍了如何解决LeetCode上分发糖果的问题。题目要求给站成一排的孩子发糖果,满足相邻孩子中评分高的获得更多糖果,且每个孩子至少1颗糖。作者通过两次遍历的贪心算法巧妙地解决了这个问题:第一次从左到右确保满足左规则,第二次从右到左结合右规则取最大值。这种方法时间复杂度O(N),空间复杂度O(N),代码简洁高效。文章提供了Java和Python的实现代码,并分析了算法的复杂度。原创 2026-04-27 20:56:49 · 667 阅读 · 0 评论 -
【经典算法复盘】手写 LRU 缓存:从标准版到带过期时间(TTL)的进阶实现
文章摘要 LRU(Least Recently Used)是一种缓存淘汰算法,核心思想是淘汰最久未使用的数据以腾出空间。标准LRU实现结合哈希表($O(1)$查找)和双向链表($O(1)$节点移动),通过维护环形链表简化操作。进阶版支持TTL(过期时间),采用惰性删除策略,在访问时检查数据是否过期。Java代码展示了LRU的基础实现与带TTL的扩展,确保高效缓存管理。原创 2026-04-14 21:53:45 · 876 阅读 · 0 评论 -
【LeetCode 994】腐烂的橘子:多源BFS经典解法与思路复盘
【LeetCode 994】腐烂的橘子:多源BFS经典解法与思路复盘原创 2026-04-14 21:02:04 · 484 阅读 · 0 评论
分享