Distinct Subsequences 哥们总算自己写个自底向上的dp解
来源:互联网 发布:手机天文软件 编辑:程序博客网 时间:2024/06/06 02:27
public class DistinctSubSeq {//long char[] cs; //short char[] ts; public int numDistinct(String S, String T) { cs=S.toCharArray(); ts=T.toCharArray(); int len1=cs.length-1; int len2=ts.length-1; int[][] l=new int[len2+1][len1+1]; for(int j=0;j<cs.length;j++){ char c=cs[len1-j]; for(int i=0;i<ts.length;i++){ char m=ts[len2-i]; if(m==c){ if(i==0&&j==0){ l[i][j]=1; continue; } if(i==0){ l[i][j]=l[i][j-1]+1; continue; } if(j==0) continue; l[i][j]=l[i-1][j-1]+l[i][j-1]; }else{ if(j==0) continue; l[i][j]=l[i][j-1]; } } } return l[len2][len1]; } public static void main(String[] args) { DistinctSubSeq ds=new DistinctSubSeq(); int v=ds.numDistinct("ababcc", "abbc"); System.out.println(v);}}
Code Rewrite:
int tlen,slen; String s,t; int res=0; int[][] dp; public int dp(){ int[]sum=new int[tlen]; dp=new int[slen+1][tlen+1]; for(int i=0;i<slen;i++){ char c=s.charAt(i); for(int j=tlen-1;j>=0;j--){ char c2=t.charAt(j); if(c==c2){ if(j==0) dp[i][j]=1; else dp[i][j]=sum[j-1]; sum[j]+=dp[i][j]; } } } return sum[tlen-1]; } public int numDistinct(String S, String T) { if(T.length()>S.length()) return 0; s=S; t=T; slen=s.length(); tlen=t.length(); return dp(); }
0 0
- Distinct Subsequences 哥们总算自己写个自底向上的dp解
- leetcode Distinct Subsequences DP
- 【DP】Distinct Subsequences
- Leetcode dp Distinct Subsequences
- [leetcode][DP] Distinct Subsequences
- LeetCode Distinct Subsequences DP
- leetcode---distinct subsequences---dp
- leetcode distinct subsequences dp solution
- Uva-10069 Distinct Subsequences DP
- Distinct Subsequences+uva+经典dp
- UVA 10069 Distinct Subsequences(DP)
- 115:Distinct Subsequences【DP】【字符串】
- leetcode -- Distinct Subsequences -- DP重点
- 115. Distinct Subsequences dp算法
- 【dp】leetcode 115. Distinct Subsequences
- Distinct Subsequences----匹配个串串
- dp+高精度 uva-10069-Distinct Subsequences
- UVA 10069 Distinct Subsequences(dp + 高精度)
- Yarn源代码分析之旅---总体架构---概述与总体架构
- Checked vs Unchecked Exceptions in Java
- 声明
- 一位软件工程师的6年总结
- 使用socket实现简单的统计站点人数
- Distinct Subsequences 哥们总算自己写个自底向上的dp解
- HDU 4529 郑厂长系列故事——N骑士问题(dp,状态压缩)
- ood
- Insertion Sort List (LeetCode)
- 2014年1月14日(DEMO7-2,加载PLG)
- Evaluate Reverse Polish Notation (LeetCode)
- Sort List (LeetCode)
- [CrackCode] 1.4 Write a method to decide if two strings are anagrams or not
- 鼠标右键