[LeetCode]115. 不同的子序列(java实现)动态规划
1. 题目
2. 读题(需要重点注意的东西)
思路(DP):
3. 解法
---------------------------------------------------解法---------------------------------------------------:
class Solution {
public int numDistinct(String s, String t) {
int n = s.length();
int m = t.length();
int[][] f = new int[n + 1][m + 1];
s = " " + s;
t = " " + t;
// 初始化
for(int i = 0;i <= n;i ++) f[i][0] = 1;
// dp
for(int i = 1;i <= n;i++)
for(int j = 1;j <= m;j++){
if(s.charAt(i) == t.charAt(j)) f[i][j] += f[i - 1][j - 1];
f[i][j] += f[i - 1][j];
}
return f[n][m];
}
}
可能存在的问题: