力扣刷题记录125.1-----115. 不同的子序列

目录

  • 一、题目
  • 二、代码
  • 三、运行结果


一、题目

力扣刷题记录125.1-----115. 不同的子序列_第1张图片
力扣刷题记录125.1-----115. 不同的子序列_第2张图片

二、代码

class Solution 
{
public:
    int numDistinct(string s, string t) 
    {
       int i,j;
       int return_int=0;
       vector<vector<uint64_t>>  dp(s.size(),vector<uint64_t>(t.size(),0));
       for(i=0;i<s.size();i++)
       {
           for(j=0;j<t.size();j++)
           {
               if(i>=1&&j>=1)
               {
                    if(s[i]==t[j]) dp[i][j]=dp[i-1][j-1]+dp[i-1][j];
                    else dp[i][j]=dp[i-1][j];
               }
               else if(i==0&&j!=0)
               {
                  dp[i][j]=0;
               }
               else if(i!=0&&j==0)
               {
                   if(s[i]==t[j]) dp[i][j]=dp[i-1][j]+1;
                   else dp[i][j]=dp[i-1][j];
               }
               else
               {
                   if(s[i]==t[j]) dp[i][j]=1;
                   else dp[i][j]=0;
               }
             // std::cout<<"  "<
           }
             //  std::cout<
       }

       return_int=dp[s.size()-1][t.size()-1]; 

       return return_int;
    }
};

三、运行结果

力扣刷题记录125.1-----115. 不同的子序列_第3张图片

你可能感兴趣的:(leetcode,算法,动态规划)