算法的一些小栗子9(动态规划算法)
来源:互联网 发布:人口数据在哪里查 编辑:程序博客网 时间:2024/05/17 08:44
动态规划算法
//动态规划算法求最长子序列public class LCS { public int findLCS(String A, String B) { int n = A.length(); int m = B.length(); char[] a = A.toCharArray(); char[] b = B.toCharArray(); int[][] dp = new int[n][m]; for (int i = 0; i < n; i++) {//第一列 if (a[i] == b[0]) { dp[i][0] = 1; for (int j = i + 1; j < n; j++) { dp[j][0] = 1; } break; } } for (int i = 0; i < m; i++) { if (a[0] == b[i]) { dp[0][i] = 1; for (int j = i + 1; j < m; j++) { dp[0][j] = 1; } break; } } for (int i = 1; i < n; i++) { for (int j = 1; j < m; j++) { if (a[i] == b[j]) { dp[i][j] = dp[i - 1][j - 1] + 1; } else { dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]); } } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { System.out.print(dp[i][j] + " "); } System.out.println(); } return dp[n - 1][m - 1]; } public static void main(String[] args) { LCS lcs = new LCS(); int findlcs = lcs.findLCS("happy", "hard"); System.out.println("最长子序列长度:" + findlcs); }}
阅读全文
0 0
- 算法的一些小栗子9(动态规划算法)
- 算法的一些小栗子6(递归算法)
- 算法的一些小栗子7(贪心算法)
- 算法的一些小栗子8(分治算法)
- 算法的一些小栗子10(回溯算法)
- 算法的一些小栗子1(插入排序)
- 算法的一些小栗子2(选择排序)
- 算法的一些小栗子3(交换排序)
- 算法的一些小栗子4(归并排序)
- 算法的一些小栗子5(基数排序)
- 开心的小明-动态规划算法
- 对动态规划算法思想的一些理解
- 动态规划(DP)算法的介绍
- 算法--动态规划算法
- TSP的动态规划算法
- 应用动态规划的算法
- 动态规划算法的理解
- LCS的动态规划算法
- 《Java特种兵》学习笔记
- FileInputStream
- 彩译通APP upportUrl
- 程序员,这样面试,你的成功率能达到 90%!
- 关于数组值的交换
- 算法的一些小栗子9(动态规划算法)
- java发送邮件程序
- PythonWeb编程Django模型层遇见的问题
- windows 2012R2安装oracle 12C界面显示空白
- 如何设计实现真正的响应式微服务系统?
- zynq QSPI
- 轮播封装(初步简单封装)
- 学习的基本法测之一:比较法
- 常见的排序算法和复杂度