这是我做的第一道DP题,感觉DP很像递归,关键是找出递推关系。代码就不上了,基本是抄的。
这题的状态转移方程为:dp[i+1][j+1] = max(dp[i][j+1],dp[i+1][j]);//a[i] != b[j]
dp[i+1][j+1] = dp[i][j] + 1;//a[i] == b[j]
其中,dp[i][j]表示第一行取前i个数,第二行取前j个数时的最大值,当且仅当两行最后的数相等时最大值增加1。