算法和数据结构
文章平均质量分 81
晨曦中的暮雨
2 本后端开发,凄凄惨惨戚戚准备秋招...
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
动态规划专题Day1——打家劫舍系列
本文总结了作者复习动态规划算法的过程,重点分析了四道打家劫舍系列题目(LC70、198、213、337)的解题思路和常见错误。作者发现自己在初始化dp数组时容易出错,如爬楼梯问题中dp[0]的取值逻辑、打家劫舍问题中dp[1]的计算方式等。对于环形房屋问题(LC213),作者通过分类讨论转化为线性问题,但需注意边界条件。树形打家劫舍问题(LC337)则采用递归解法,强调子节点选择时的最优决策。这些题目展现了动态规划从一维到环形再到树形的递进关系,核心都是"选/不选"两种状态的转移。原创 2026-05-17 23:19:11 · 418 阅读 · 0 评论 -
KMP算法
KMP算法是由Knuth、Morris和Pratt三位学者发明的字符串匹配算法,其核心是前缀表(next数组)。该表记录模式串中各位置的最长相同前后缀长度,用于匹配失败时确定子串回退位置。计算前缀表时,逐个比较前后缀字符,匹配则长度加1,不匹配则回退到前一个匹配点。使用next数组可避免主串回溯,将时间复杂度优化至O(M+N)。算法通过动态规划思想构建next数组,利用已知匹配信息减少重复比较,显著提升匹配效率。原创 2025-11-22 15:39:24 · 899 阅读 · 0 评论
分享