代码拉取完成,页面将自动刷新
public class _115 {
static class Solution1{
Integer[][] dp;
public int numDistinct(String s, String t) {
dp = new Integer[s.length()][t.length()];
return dfs(s,t,0,0);
}
public int dfs(String s,String t,int i,int j){
if(j==t.length())return 1;
if(i == s.length()) return 0;
if(dp[i][j] != null) return dp[i][j];
int res = 0;
if(s.charAt(i) == t.charAt(j)){
res += dfs(s,t,i+1,j+1);
}
res += dfs(s,t,i+1,j);
return dp[i][j] = res;
}
}
static class Solution2{
public int numDistinct(String s, String t) {
//s[x,s.length()-1], t[y,t.length-1]
//dp[x][y] 分别代表[y,t.length()-1]在 [x,s.length()-1]中作为子串的出现次数
int[][] dp = new int[s.length()+1][t.length()+1];
for(int i = 0;i < dp.length;i++){
dp[i][t.length()] = 1;
}
char[] sc = s.toCharArray();
char[] tc = t.toCharArray();
for(int y = tc.length-1;y >= 0;y--){
for(int x = sc.length-1;x >=0;x--){
dp[x][y] = dp[x+1][y] + (sc[x] == tc[y] ? dp[x+1][y+1] : 0 );
}
}
return dp[0][0];
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。