LCS
来源:互联网 发布:创维电视使用网络电视 编辑:程序博客网 时间:2024/06/07 03:25
import java.util.Timer;
public class LCS {
static int[][] memoryDP = new int[100][100];
public static void main(String[] args) { String str1 = "abfdasgffdvddgfdvcq"; String str2 = "vfdcsdcewfedsesq"; // fdsq long timeMillis = System.currentTimeMillis(); int length = lcs(str1, str2, str1.length(), str2.length()); System.out.println(System.currentTimeMillis() - timeMillis); long timeMillis2 = System.currentTimeMillis(); System.out.println(length); int length2 = lcsDP(str1, str2, str1.length(), str2.length()); System.out.println(System.currentTimeMillis() - timeMillis2); System.out.println(length2);}// 递归 +DPprivate static int lcsDP(String str1, String str2, int m, int n) { if (m == 0 || n == 0) { return 0; } if (memoryDP[m - 1][n - 1] != 0) { return memoryDP[m - 1][n - 1]; } else if (str1.charAt(m - 1) == str2.charAt(n - 1)) { memoryDP[m - 1][n - 1] = lcs(str1, str2, m - 1, n - 1) + 1; return memoryDP[m - 1][n - 1]; } memoryDP[m - 1][n - 1] = max(lcs(str1, str2, m - 1, n), lcs(str1, str2, m, n - 1)); return memoryDP[m - 1][n - 1];}// 递归private static int lcs(String str1, String str2, int m, int n) { if (m == 0 || n == 0) { return 0; } if (str1.charAt(m - 1) == str2.charAt(n - 1)) { return lcs(str1, str2, m - 1, n - 1) + 1; } else { return max(lcs(str1, str2, m - 1, n), lcs(str1, str2, m, n - 1)); }}private static int max(int lcs1, int lcs2) { return lcs1 > lcs2 ? lcs1 : lcs2;}
}
阅读全文
0 0
- LCS
- LCS
- lcs
- LCS
- LCS
- LCS
- LCS
- LCS
- LCS
- LCS
- lcs
- LCS
- LCS
- lcs
- LCS
- LCS
- LCS
- LCS
- Datagrid 加载后台数据的方式
- 美团点评SQL优化工具SQLAdvisor开源
- 博客迁移到GitHub欢迎访问
- 华为OJ放苹果
- servlet中的相对路径和绝对路径 及/, ./, ../的区别
- LCS
- eclipse报内存溢出错误,修改eclipse.ini配置不生效问题,可能与环境变量配置有关
- LIS
- IAAS、PAAS、SAAS 的区别
- MaxHeap
- NQueen
- 03java基础api2
- OJ2755神器的口袋
- Android手机号、串号获取