一、先明确核心概念(新手易懂版)
- 状态:就是 DP 里定义的
dp[i]、dp[i][j]这类表示子问题的变量,比如dp[i]是第 i 个斐波那契数,dp[i][j]是前 i 个物品装容量 j 背包的最大价值。 - 状态数量:所有需要计算的子问题数量(比如一维 DP 的状态数是 n,二维 DP 是 n*m)。
- 单个状态计算成本:算一个状态(比如
dp[i])需要的操作数(通常是 O(1),少数是 O(k))。
二、时间复杂度计算(核心公式)
公式:
时间复杂度 = 状态数量 × 单个状态的计算成本

