代码随想录二刷day55

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、力扣392. 判断子序列
  • 二、力扣115. 不同的子序列


前言


一、力扣392. 判断子序列

class Solution {
    public boolean isSubsequence(String s, String t) {
        int row = s.length()+1;
        int col = t.length()+1;
        int[][] dp = new int[row][col];
        int res = 0;
        for(int i = 1; i < row; i ++){
            for(int j = 1; j < col; 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 s.length() == dp[row-1][col-1] ? true:false;
    }
}

二、力扣115. 不同的子序列

class Solution {
    public int numDistinct(String s, String t) {
        int[][] dp = new int[s.length() + 1][t.length() + 1];
        for (int i = 0; i < s.length() + 1; i++) {
            dp[i][0] = 1;
        }
        
        for (int i = 1; i < s.length() + 1; i++) {
            for (int j = 1; j < t.length() + 1; 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[s.length()][t.length()];
    }
}

你可能感兴趣的:(算法,数据结构,动态规划,java,leetcode)