动态规划算法-两个数组的dp(含字符串数组):43.不同的子序列

题目链接:115. 不同的子序列(困难)

算法原理:

解法:动态规划

Java代码:

java 复制代码
/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 王洋
 * Date: 2025-10-26
 * Time: 21:33
 */
class Solution {
    //115. 不同的子序列
    //看完算法原理后自己写了一遍,主要就是在行和列上与s和t的一一对应关系上出了点差错,导致一直不通过
    //跟吴小哲写的一样
    public int numDistinct(String s, String t) {
        int m=t.length(),n=s.length();
        int[][] dp=new int[m+1][n+1];
        //初始化
        for(int j=0;j<=n;j++) dp[0][j]=1;
        s=" "+s;t=" "+t;
        for(int i=1;i<=m;i++){
            for(int j=1;j<=n;j++){
                dp[i][j]+=dp[i][j-1];
                if(t.charAt(i)==s.charAt(j))
                    dp[i][j]+=dp[i-1][j-1];
            }
        }
        return dp[m][n];
    }
}
相关推荐
山峰哥2 小时前
现代 C++ 的最佳实践:从语法糖到工程化思维的全维度探索
java·大数据·开发语言·数据结构·c++
故渊ZY2 小时前
Spring DI核心原理:依赖注入实战全解析
java·spring
Xの哲學2 小时前
Linux I3C驱动深度剖析: 从原理到实战的全面解析
linux·服务器·算法·架构·边缘计算
Andy工程师2 小时前
Spring Boot 的核心目标
java·spring boot·后端
努力搬砖的咸鱼2 小时前
API 网关:微服务的大门卫
java·大数据·微服务·云原生
爱喝热水的呀哈喽2 小时前
chns方程 推导简单的能量耗散律,分部积分向量形式,sav初简介
算法
代码游侠2 小时前
应用——统计文件字符数、单词数、行数
服务器·笔记·算法
小裕哥略帅2 小时前
Springboot中全局myBaits插件配置
java·spring boot·后端
岁岁的O泡奶2 小时前
NSSCTF_crypto_[MTCTF 2021 final]ezRSA
经验分享·python·算法·密码学·crypto