Day30

第7天:动态规划(DP)基础(一)——线性DP(目标:400分,累计2500分)

今日任务:

1. 完成5道线性DP题(如“爬楼梯”“斐波那契数列变种”“最大子数组和”“打家劫舍”),分值300-400分;
2. 用思维导图整理“DP三要素”:状态定义(如“dp[i]表示前i阶楼梯的方法数”)、转移方程(如“dp[i] = dp[i-1] + dp[i-2]”)、初始条件(如“dp[0]=1”)。

今日感悟方向:
DP的“递推思维”和“递归”完全不同——递归是“从目标拆到基础”,DP是“从基础推到目标”。今天写“最大子数组和”时,一开始用了递归(超时),改用DP后(dp[i] = max(nums[i], dp[i-1[inums[i]))才发现:DP的核心是“用已知求未知,避免重复计算”。初始条件的设定比想象中重要(如“dp[0]的定义是否包含第0个元素”),差一个下标结果就错了。

明日计划:DP基础(二),聚焦“二维DP”和“状态压缩”。

posted @ 2025-07-30 22:35  晨乌  阅读(7)  评论(0)    收藏  举报