博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java数据结构和算法-动态规划
阅读量:2444 次
发布时间:2019-05-10

本文共 719 字,大约阅读时间需要 2 分钟。

动态规划算法:

动态规划算法通常基于一个递推公式及一个或多个初始状态。当前子问题的解将由上一次子问题的解推出。使用动态规划来解题只需要多项式时间复杂度,因此它比回溯法、暴力法等要快许多。

例子:最长公共子序列问题

String str1="androdid"; String str2="random";

最长公共子序列:ando,只考虑顺序不考虑中间是否间隔,不同于公共字符串and。

该问题的递归式子可以写成:

              

注意以下代码求最长公共子序列问题,矩阵第一行和第一列初始化,其他由递归公式生成。

最长公共子序列问题Java实现:

package com.algorithm.lcs;/** * 动态规划--最长公共子序列 */public class LCS {    public static void main(String[] args) {        String str1="androdid";        String str2="random";        findLCS(str1,str2);    }    private static void findLCS(String str1, String str2) {        int m=str1.length();        int n=str2.length();        char[] chars1=str1.toCharArray();        char[] chars2=str2.toCharArray();        int[][] dp=new int[m][n];        for(int i=0;i

 

你可能感兴趣的文章
apache 证书配置_Apache配置错误AH02572:无法配置至少一个证书和密钥
查看>>
web设置字体粗细css_Web上使用CSS的可变字体
查看>>
css 垂直对齐_CSS垂直对齐属性
查看>>
为您的网站提供动力的100种Jamstack工具,API和服务
查看>>
api restful_构建RESTful API的13种最佳实践
查看>>
wordpress用途_8个热门WordPress多用途主题及其炫酷功能
查看>>
用于Angular,React和Vue.js的Bootstrap UI库
查看>>
使用MongoDB Stitch在10分钟内构建一个Slack应用
查看>>
struts2 css失效_CSS体系结构和可维护CSS的三大Struts
查看>>
php使用nginx建网站_如何使用预建网站来刷新网站的外观
查看>>
使用React和PHP开发游戏:它们的兼容性如何?
查看>>
哈巴狗入门指南
查看>>
js设置css自定义变量_CSS变量实用指南(自定义属性)
查看>>
http建立个人服务器工具_建立网站和页面的最佳7种工具
查看>>
前端框架浏览器兼容解决方案_前端框架:定制与即用型解决方案
查看>>
驯服Snoo:使用Reddit API
查看>>
php页面不渲染显示源代码_PHP如何执行-从源代码到渲染
查看>>
Sourcehunt 17.1:值得关注的7个有趣PHP软件包
查看>>
使用转发装饰器实现模块化架构
查看>>
旅行者 问题_旅行者-管理员UI可以使Laravel更加平易近人吗?
查看>>