代码随想录算法训练营day55 392.判断子序列 115.不同的子序列

题目链接392.判断子序列

复制代码
class Solution {
    public boolean isSubsequence(String s, String t) {
        int length1 = s.length();
        int length2 = t.length();
        int[][] dp = new int[length1+1][length2+1];
        for(int i = 1; i <= length1; i++){
            for(int j = 1; j <=length2; j++){
                if(s.charAt(i-1) == t.charAt(j-1)){
                    dp[i][j] = dp[i-1][j-1] + 1;
                }else{
                    dp[i][j] = dp[i][j-1];
                }
            }
        }
        return dp[length1][length2] == length1 ? true:false; 
    }
}

题目链接不同的子序列

复制代码
class Solution {
    public int numDistinct(String s, String t) {
        int length1 = s.length();
        int length2 = t.length();
        int[][] dp = new int[length1+1][length2+1];
        for(int i = 0; i <= length1; i++){
            dp[i][0] = 1;
        }
        for(int i =1; i <= length1; i++){
            for(int j =1; j <=length2; j++){
                if(s.charAt(i-1) == t.charAt(j-1)){
                    dp[i][j] = dp[i-1][j-1] + dp[i-1][j];
                }else{
                    dp[i][j] = dp[i-1][j];
                }
            }
        }
        return dp[length1][length2];
    }
}
相关推荐
前端小白在前进2 分钟前
力扣刷题:合并两个有序数组
算法·leetcode·职场和发展
john_hjy21 分钟前
标量、向量、矩阵、张量
算法·机器学习·矩阵
qq_4308558825 分钟前
线代第一章行列式第八课:克莱姆法则(Cramer法则)
线性代数·算法·矩阵
小妖66626 分钟前
力扣(LeetCode)- 542. 01 矩阵
算法·leetcode·矩阵
小年糕是糕手27 分钟前
【C++】内存管理(下)
java·c语言·开发语言·数据结构·c++·算法
CoderYanger29 分钟前
第 479 场周赛Q2——3770. 可表示为连续质数和的最大质数
java·数据结构·算法·leetcode·职场和发展
像风一样自由202033 分钟前
U-Net 图像分割算法:从零开始的完全指南
算法
云泽80836 分钟前
蓝桥杯算法精讲:前缀和与差分算法的应用与实战
算法·职场和发展·蓝桥杯
Swift社区37 分钟前
LeetCode 444 - 序列重建
算法·leetcode·蓝桥杯
NaturalHarmonia38 分钟前
UIE信息抽取模型指代消解实战教程(extra)
人工智能·算法