代码随想录算法训练营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];
    }
}
相关推荐
lisw0517 分钟前
分岔论揭示演化突变密码
开发语言·算法·数学建模
aqiu11111125 分钟前
C++ TopK:使用 nth_element 快速求最小 K 个数(蓝桥杯 / LeetCode 可用)
算法
Suprman37 分钟前
平面排版问题的数学建模与算法设计
算法·数学建模·排序算法·排版套料
FPGA信号处理38 分钟前
【应用随机过程】:更新过程与马尔可夫链入门
算法·概率论
重生之小比特1 小时前
【算法拾光】二分查找|在排序数组中查找元素的第一个和最后一个位置 + 搜索旋转排序数组
数据结构·算法·排序算法
吴可可1231 小时前
DXF与AAMA格式转换模块推荐
算法
重生之小比特1 小时前
【算法拾光】二分查找|搜索旋转排序数组 + 寻找旋转排序数组中的最小值
算法
YukiRinLL1 小时前
查找与排序算法:复杂度、稳定性
数据结构·算法·排序算法
徐小夕10 小时前
花了3个月,我们做了一款 AI 版的“飞书文档”
前端·算法·github
Robert--cao10 小时前
移动底盘与机械臂联合规划:开源算法与工程实现
算法