Day38

第15天:动态规划进阶(二)——子序列问题()

今日任务:

1. 完成3道经典子序列题(如“最长递增子序列LIS”“最长公共子序列LCS”“编辑距离”),分值400-500分;
2. 对LIS尝试“贪心+二分”优化(O(n logn)),对比传统DP(O(n²))的效率差异;
3. 用思维导图梳理“子序列vs子串”的区别(子序列可不连续,子串必须连续)及对应DP策略。

今日感悟方向:
LCS的dp[i][j]定义(“前i个字符与前j个字符的LCS长度”)很经典,转移方程中“s[i-1] == s[j-1]时取dp[i-1][j-1]+1”的逻辑,体现了“字符匹配则累加”的核心。编辑距离的“插入、删除、替换”三种操作对应三种转移路径,需要把每种操作的代价(均为1)转化为dp[i][j]的取值。子序列题的“初始化”(如dp[0][j]或dp[i][0]的取值)往往与“空序列”相关,这是容易忽略的边界。

明日计划:字符串进阶(KMP算法与正则)

posted @ 2025-08-08 21:37  晨乌  阅读(4)  评论(0)    收藏  举报