代码随想录算法训练营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];
    }
}
相关推荐
sali-tec17 小时前
C# 基于halcon的视觉工作流-章66 四目匹配
开发语言·人工智能·数码相机·算法·计算机视觉·c#
小明说Java17 小时前
常见排序算法的实现
数据结构·算法·排序算法
行云流水201918 小时前
编程竞赛算法选择:理解时间复杂度提升解题效率
算法
smj2302_7968265220 小时前
解决leetcode第3768题.固定长度子数组中的最小逆序对数目
python·算法·leetcode
cynicme20 小时前
力扣3531——统计被覆盖的建筑
算法·leetcode
core51221 小时前
深度解析DeepSeek-R1中GRPO强化学习算法
人工智能·算法·机器学习·deepseek·grpo
mit6.82421 小时前
计数if|
算法
a伊雪21 小时前
c++ 引用参数
c++·算法
Data_agent1 天前
1688获得1688店铺列表API,python请求示例
开发语言·python·算法
2301_764441331 天前
使用python构建的应急物资代储博弈模型
开发语言·python·算法