Ai
1 Star 0 Fork 0

geekplayers/Leetcode-1-300

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
_115_DistinctSubsequences.java 2.21 KB
一键复制 编辑 原始数据 按行查看 历史
Cspiration 提交于 2019-01-31 06:52 +08:00 . Add files via upload
package leetcode_1To300;
/**
* 本代码来自 Cspiration,由 @Cspiration 提供
* 题目来源:http://leetcode.com
* - Cspiration 致力于在 CS 领域内帮助中国人找到工作,让更多海外国人受益
* - 现有课程:Leetcode Java 版本视频讲解(1-900题)(上)(中)(下)三部
* - 算法基础知识(上)(下)两部;题型技巧讲解(上)(下)两部
* - 节省刷题时间,效率提高2-3倍,初学者轻松一天10题,入门者轻松一天20题
* - 讲师:Edward Shi
* - 官方网站:https://cspiration.com
* - 版权所有,转发请注明出处
*/
public class _115_DistinctSubsequences {
/**
* 115. Distinct Subsequences
* Given a string S and a string T, count the number of distinct subsequences of S which equals T.
A subsequence of a string is a new string which is formed from the original string
by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters.
(ie, "ACE" is a subsequence of "ABCDE" while "AEC" is not).
Here is an example:
S = "rabbbit", T = "rabbit"
Return 3.
int[][] dp
1, S.charAt(i) != T.charAt(j)
dp[i][j] = dp[i-1][j]
2, S.charAt(i) == T.charAt(j)
dp[i][j] = dp[i-1][j] + dp[i-1][j-1]
r a b b i t
1, 0, 0, 0, 0, 0, 0
r 1, 1, 0, 0, 0, 0, 0
a 1, 1, 1, 0, 0, 0, 0
b 1, 1, 1, 1, 0, 0, 0
b 1, 1, 1, 2, 1, 0, 0
b 1, 1, 1, 3, 3, 0, 0
i 1, 1, 1, 3, 3, 3, 0
t 1, 1, 1, 3, 3, 3, 3
time : O(m * n)
space : O(m * n)
* @param S
* @param T
* @return
*/
public static 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(); i++) {
for (int j = 1; j <= T.length(); j++) {
if (S.charAt(i - 1) == T.charAt(j - 1)) {
dp[i][j] = dp[i-1][j] + dp[i-1][j-1];
} else {
dp[i][j] = dp[i-1][j];
}
}
}
return dp[S.length()][T.length()];
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/geekplayers/Leetcode-1-300.git
git@gitee.com:geekplayers/Leetcode-1-300.git
geekplayers
Leetcode-1-300
Leetcode-1-300
master

搜索帮助