leetcode 115. 不同的子序列

题目如下

数据范围

复制代码
这道题和leetcode 3290. 最高乘法得分有异曲同工之妙同样是考虑两个序列。思路见下面文章

leetcode 3290. 最高乘法得分

cpp 复制代码
class Solution {
public:
    int numDistinct(string s, string t) {
        int n = t.size(),m = s.size();
        if(m < n)return 0;
        if(m == n && s != t)return 0;
        int mod = 1e9 + 7;
        vector<vector<int>> dp(n + 1,vector<int>(m + 1,0));
        dp[0][0] = 1;
        for(int i = 0;i <= m;i++)dp[0][i] = 1;
        for(int i = 1;i <= n;i++){
            for(int j = 1;j <= m;j++){
                if(s[j - 1] == t[i - 1]){
                    dp[i][j] = dp[i - 1][j - 1];
                }
                dp[i][j] = (dp[i][j] + dp[i][j - 1]) % mod;
             //   cout << dp[i][j] << " ";
            }
         //   cout << endl;
        }
        return dp[n][m];

    }
};
相关推荐
~山有木兮3 分钟前
C++设计模式 - 单例模式
c++·单例模式·设计模式
蒟蒻小袁9 分钟前
力扣面试150题--被围绕的区域
leetcode·面试·深度优先
十五年专注C++开发15 分钟前
CMake基础:gcc/g++编译选项详解
开发语言·c++·gcc·g++
MSTcheng.21 分钟前
【数据结构】顺序表和链表详解(下)
数据结构·链表
Q81375746032 分钟前
中阳视角下的资产配置趋势分析与算法支持
算法
yvestine39 分钟前
自然语言处理——文本表示
人工智能·python·算法·自然语言处理·文本表示
HUN金克斯1 小时前
C++/C函数
c语言·开发语言·c++
慢半拍iii1 小时前
数据结构——F/图
c语言·开发语言·数据结构·c++
GalaxyPokemon1 小时前
LeetCode - 148. 排序链表
linux·算法·leetcode
iceslime1 小时前
旅行商问题(TSP)的 C++ 动态规划解法教学攻略
数据结构·c++·算法·算法设计与分析