Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0 Star 0 Fork 0

徐云天/leetcode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
_115.java 1.33 KB
一键复制 编辑 原始数据 按行查看 历史
徐云天 提交于 2021-06-22 10:30 +08:00 . 增加115
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];
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/xuyuntian/leetcode.git
git@gitee.com:xuyuntian/leetcode.git
xuyuntian
leetcode
leetcode
master