Dynamic Programming - Part2

实现如下:
public static void main(String[] args) {
String squence1 = "ABCBDAB";
String squence2 = "BDCABC";
int len1 = squence1.length(), len2 = squence2.length();
if (len1 <= 0 || len2 <= 0) {
System.out.println("empty squence!");
return;
}
int[][] allCommonSubLen = new int[len1+1][len2+1];
//print all sub-squences
String subSquence = "";
//初始化i=0, j=0
for (int i = 0; i < len1; i++) {
allCommonSubLen[i][0] = 0;
}
for (int j = 0; j < len2; j++) {
allCommonSubLen[0][j] = 0;
}
//迭代关系
for (int i = 1; i <= len1; i++) {
for (int j = 1; j <= len2; j++) {
char c1 = squence1.charAt(i-1);
char c2 = squence2.charAt(j-1);
if (c1 == c2) {
//subSquence += c1;
allCommonSubLen[i][j] = allCommonSubLen[i-1][j-1] + 1;
//System.out.println("i="+i+" ; j="+j+" ; subSquence="+subSquence);
} else {
allCommonSubLen[i][j] = Math.max(allCommonSubLen[i-1][j], allCommonSubLen[i][j-1]);
if (allCommonSubLen[i][j] == allCommonSubLen[i-1][j]) {
//subSquence += c2;
//System.out.println("i="+i+" ; j="+j+" ; subSquence="+subSquence);
} else {
//subSquence += c1;
//System.out.println("i="+i+" ; j="+j+" ; subSquence="+subSquence);
}
}
}
}
//System.out.println(allCommonSubLen[len1][len2]);
}
Dynamic Programming - Part2的更多相关文章
- 动态规划 Dynamic Programming
March 26, 2013 作者:Hawstein 出处:http://hawstein.com/posts/dp-novice-to-advanced.html 声明:本文采用以下协议进行授权: ...
- Dynamic Programming
We began our study of algorithmic techniques with greedy algorithms, which in some sense form the mo ...
- HDU 4223 Dynamic Programming?(最小连续子序列和的绝对值O(NlogN))
传送门 Description Dynamic Programming, short for DP, is the favorite of iSea. It is a method for solvi ...
- hdu 4223 Dynamic Programming?
Dynamic Programming? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...
- 算法导论学习-Dynamic Programming
转载自:http://blog.csdn.net/speedme/article/details/24231197 1. 什么是动态规划 ------------------------------- ...
- Dynamic Programming: From novice to advanced
作者:Dumitru 出处:http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=dynProg An impo ...
- HDU-4972 A simple dynamic programming problem
http://acm.hdu.edu.cn/showproblem.php?pid=4972 ++和+1还是有区别的,不可大意. A simple dynamic programming proble ...
- [算法]动态规划(Dynamic programming)
转载请注明原创:http://www.cnblogs.com/StartoverX/p/4603173.html Dynamic Programming的Programming指的不是程序而是一种表格 ...
- hdu 4972 A simple dynamic programming problem(高效)
pid=4972" target="_blank" style="">题目链接:hdu 4972 A simple dynamic progra ...
随机推荐
- JQuery ajax返回JSON时的处理方式
最近在使用JQuery的ajax方法时,要求返回的数据为json数据,在处理的过程中遇到下面的几个问题,那就是采用不同的方式来生成json数据的时候,在$.ajax方法中应该是如何来处理的,下面依次来 ...
- 自己一晚上总结的php基础知识!好累。好充实。
为了巩固自己的基础提升自己的技术.花了一晚上的时间结合w3c上的非常基础的东西,和自己的部分见解,写了不少,望大神们指正,指导.. <?php /* 这段话必须要写在开篇啊!死老猫,你又刺激我! ...
- 清除VS2012生成的不必要文件
VS2012生成的项目文件中会有一个与解决方案同名的sdf文件,并且比较大,可以删除的,具体方法如下: 英文版步骤如下: Tools->Options->Text Editor->C ...
- Using-jqGrid-s-search-toolbar-with-multiple-filter
http://www.codeproject.com/Articles/58357/Using-jqGrid-s-search-toolbar-with-multiple-filter
- C#导出GridView数据到Excel文件类
using System; using System.Web; using System.Web.UI; using System.IO; using System.Web.UI.WebControl ...
- 2016/09/21 java split用法
public String[] split(String regex) 默认limit为0 public String[] split(String regex, int limit) 当limit& ...
- Oracle 查看相关优化器参数
select x.ksppinm name, y.ksppstvl value, y.ksppstdf isdefault, decode(bitand(y.ksppstvf, 7), 1, 'MOD ...
- tomcat datasource
<Resource name="jdbc/xxx" auth="Container" type="javax.sql.DataSource&qu ...
- [转]Oracle_ProC编程
1.引言 由于PL/SQL不能用来开发面向普通用户的应用程序,必须借助其他语言或开发工具. 在Linux操作系统下应该用什么语言或开发工具来进行Oracle数据库应用的开发呢?本文将介绍2种方案:Pr ...
- 做HDU1010 带出来一个小问题
做1010 本来是想的DFS深搜 但是自己凭空打 打不出来 因为没有记模板 然后就去搜 但是看了一遍 自己打却又是有BUG 然后验证 就出现了一个二维字符数组打印的问题 开始代码是这 ...