Leetcode-115. 不同的子序列
题目:https://leetcode-cn.com/problems/distinct-subsequences/
解法1:动态规划
t为目标字符串,s为查找字符串
思路:
1.dp[i][j]表示t的前i字符串与s的前j字符串能形成符合要求的不同子序列的个数
2.dp[0][j]=1;即t为空字符串时的情况
3.状态转移方程:
s[j]!=t[i]时,dp[i][j]=dp[i][j-1],即当前最多子序列个数,与j-1时的子序列个数相同
s[j]=t[i]时,dp[i][j]=dp[i][j-1]+dp[i-1][j-1],即当前最多子序列个数,由j-1时子序列个数和s,t各减少一个字符的子序列个数组成
1 | class Solution { |