力扣 -- 115. 不同的子序列

力扣 -- 115. 不同的子序列_第1张图片

解题步骤:

力扣 -- 115. 不同的子序列_第2张图片

力扣 -- 115. 不同的子序列_第3张图片

力扣 -- 115. 不同的子序列_第4张图片

力扣 -- 115. 不同的子序列_第5张图片

参考代码:

class Solution {
public:
    int numDistinct(string s, string t) {
        int n=s.size();
        int m=t.size();
        //多开一行,多开一列
        vector> dp(m+1,vector(n+1));
        for(size_t j=0;j<=n;j++)
        {
            dp[0][j]=1;//初始化
        }
        //字符串引入空格调整下标对应关系
        s=' '+s;
        t=' '+t;
        //填表
        for(size_t i=1;i<=m;i++)
        {
            for(size_t j=1;j<=n;j++)
            {
                dp[i][j]+=dp[i][j-1];
                if(t[i]==s[j])
                {
                    dp[i][j]+=+dp[i-1][j-1];
                }
            }
        }
        //返回值
        return dp[m][n];
    }
};

你学会了吗???

你可能感兴趣的:(力扣经典面试题,力扣动态规划,数据结构,算法,c++,动态规划)