代码随想录算法训练营第五十五天 | 判断子序列、不同的子序列
● 今日学习的文章链接和视频链接
● 看到题目的第一想法
hard题感觉和普通题长得差不多 甚至没第二题的第一题恐怖
● 看完代码随想录之后的想法
还是很不错的 有思路
● 实现过程中遇到哪些困难
初次接触不熟悉
● 解题代码
-
点击查看代码
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; } } -
点击查看代码
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
浙公网安备 33010602011771号