动态规划算法-两个数组的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];
    }
}
相关推荐
CoderCodingNo7 小时前
【NOIP】2011真题解析 luogu-P1003 铺地毯 | GESP三、四级以上可练习
算法
翊谦7 小时前
Java Agent开发 Milvus 向量数据库安装
java·数据库·milvus
晓晓hh8 小时前
JavaSE学习——迭代器
java·开发语言·学习
iFlyCai8 小时前
C语言中的指针
c语言·数据结构·算法
查古穆8 小时前
栈-有效的括号
java·数据结构·算法
再一次等风来8 小时前
近场声全息(NAH)仿真实现:从阵列实值信号到波数域重建
算法·matlab·信号处理·近场声全息·nah
汀、人工智能8 小时前
16 - 高级特性
数据结构·算法·数据库架构·图论·16 - 高级特性
大熊背8 小时前
利用ISP离线模式进行分块LSC校正的方法
人工智能·算法·机器学习
Java面试题总结8 小时前
Spring - Bean 生命周期
java·spring·rpc
硅基诗人8 小时前
每日一道面试题 10:synchronized 与 ReentrantLock 的核心区别及生产环境如何选型?
java