代码随想录算法训练营第五十五天 | 判断子序列、不同的子序列

● 今日学习的文章链接和视频链接

题目392. 判断子序列
题目115. 不同的子序列

● 看到题目的第一想法

hard题感觉和普通题长得差不多 甚至没第二题的第一题恐怖

● 看完代码随想录之后的想法

还是很不错的 有思路

● 实现过程中遇到哪些困难

初次接触不熟悉

● 解题代码

  1. 点击查看代码
    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;
        }
    }
    
  2. 点击查看代码
    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(); 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()];
        }
    }
    

● 今日收获,学习时长

今日收获:子序列
学习时长:1h
posted @ 2024-01-23 18:11  雨年今天有记录吗  阅读(9)  评论(0)    收藏  举报