📏 单序列型

dp[i]表示为 A[0,...,i]的状态。要建立 dp[i] 与 dp[i-1]、 dp[i-2]、dp[i-3]、dp[i-4]。。。dp[0]的联系。有时候dp[i]表示为 A[0,...,i]的状态,且必须包含A[i],此时最好用自低向上的方法,例如:题目LC300,因为此时需要回溯 dp[i] 之前的所有状态;有时候dp[i]表示为 A[0,...,i]的状态,可能包含A[i],这时候使用自底向上或者自顶向下都可以。

🌒 双序列型

dp[i,j] 表示输入为 A[0,...,i]和B[0,...,j]时的状态,要建立 dp[i,j]与dp[i-1,j]、dp[i-1,j-1]、dp[i,j-1]、dp[i-2,j]、dp[i-2,j-1]、...的联系