动态规划经典题目整理

  • 背包问题
  • 最长公共子串问题
  • 连续数组最大和问题
  • 持续增加中。。。。

背包问题

复杂度 O(nW)O(nW)O(nW)
nnn为物品种类,WWW是背包的重量

目的:使得背包中的物品价值最大化

  1. 单副本背包问题:(每种物品只有一件)
    K(w,j)=max{K(w−wj,j−1)+vj,K(w,j−1)}K(w,j)=max\{K(w-w_j,j-1)+v_j,K(w,j-1)\}K(w,j)=max{K(w−wj​,j−1)+vj​,K(w,j−1)}

    K(w,j)K(w,j)K(w,j)代表背包重量为WWW,有jjj件物品时候的最大价值
    vjv_jvj​为第jjj种物品的价值

  2. 多副本背包问题:(每种物品有无数件)
    K(w)=max{K(w−wi)+vi:wi<=w}K(w)=max\{K(w-w_i)+v_i:w_i<=w\}K(w)=max{K(w−wi​)+vi​:wi​<=w}

最长公共子串问题

博客入口
问题描述: 设有s[m]s[m]s[m],和t[n]t[n]t[n]两个字符串,要找他们最长的公共子串

解:
设置一个变量 存储最长公共子串的长度
long=0;

c(i,j)=s[i]==s[j]?c(i-1,j-1)+1:0
每次如果 c(i,j)>long 那么 long=c(i,j)

设两个子序列的长度分别为mmm,nnn
那么时间复杂度就为O(mn)O(mn)O(mn)

连续数组最大和问题

例子:
给定一个数组如:
{-2, 11, -4, 13, -5, -2 }
该数组的最大和为 i=2, j=4的时候 11-4+13=20

算法:

int sum=0, b=0;for(int i=1;i<=n;++i){if(b>0){b+=a[i];}else{b=a[i]}if(b>sum)sum=b;
}
return sum;

复杂度:O(n)O(n)O(n)

持续增加中。。。。

动态规划经典题目整理相关推荐

  1. 动态规划经典题目_动态规划经典题目:鸡蛋掉落(附视频讲解)

    题目: 思路: 先放上视频讲解 动态规划经典题目:鸡蛋掉落https://www.zhihu.com/video/1225199247848513536 纠正:视频里的状态转移方程漏写了一个+1,意思 ...

  2. 动态规划经典题目-最小权三角剖分

    文章目录 一.题目描述 二.解题思路 1. 定义状态 2. 定义状态转移方程 3. 初始化 4. 计算方式 三.代码实现 四.执行结果 五.思考 一.题目描述 设A是顶点为0,1,-,n-1的n凸多边 ...

  3. 动态规划经典题目——最大子矩阵和

    一.题目 题目描述:现给出一个N*N矩阵,要求求出拥有最大和的子矩阵的和.例子如下图所示: 它的最大子矩阵的和为15: 二.解题思路 此题的解法与动态规划经典题目--最大连续子序列之和题目思想一样,只 ...

  4. 动态规划经典题目-数据压缩之图像压缩

    文章目录 一.题目描述 二.解题思路 1. 定义状态 2. 定义状态转移方程 3. 初始化 4. 计算方式 三.代码实现 四.执行结果 五.思考 一.题目描述 ​ 计算机中的图像由一系列像点构成,每个 ...

  5. poj动态规划经典题目

    列表一:经典题目题号: 容易: 1018, 1050, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 1322, 1 ...

  6. 动态规划经典题目总结

    微信公众号 在算法中,动态规划题目算是比较经典的一类题目.在找工作中,不管是笔试,还是面试,我们经常会遇到用动态规划来解决问题的情况,有时候面试官还需要我们现场手写出动态规划解法的代码.因此,在求职中 ...

  7. 动态规划经典题目汇总

    http://www.cppblog.com/doer-xee/archive/2009/12/05/102629.html 转载之前先Orz一下: [s:19] Robberies http://a ...

  8. 动态规划经典题目——数塔问题

    一.题目 数塔问题 :要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 二.解题思路 动态规划解题思路可详见另一篇文章.数塔中元素用二维数组a[][]表示 ①定义状态 ...

  9. 动态规划经典问题整理

    单序列: 最长连续递增序列  最长递增子序列   最长递增子序列的个数  最大子序和   最大整除子集 爬楼梯最长定差子序列  爬楼梯 使用最小花费爬楼梯 比特位计数 旋转数字 把数字翻译成字符串 青 ...

最新文章

  1. linux cp 强制覆盖_Linux基本操作教程
  2. linux cgi转发串口数据库,CGI连接数据库的方法
  3. 私有化预期终于落地,海尔智家将迎来更多可能!
  4. MATLAB中unzip出错,node.js里unzip出错的处理
  5. POJ - 2115 C Looooops(扩展欧几里得)
  6. 【渝粤教育】国家开放大学2018年春季 8659-22T计算机平面设计(1)(2) 参考试题
  7. REVERSE-PRACTICE-BUUCTF-9
  8. LeetCode 1859. 将句子排序
  9. Redis之缓存设计
  10. @property括号内属性讲解
  11. 开始VC6学习之旅2
  12. 0-5v转0-20ma和0-5v转4-20ma
  13. 关于现代计算机的知识,从资本经济到知识经济:现代计算机的知识革命
  14. 基于Java的体育场地预约系统
  15. 一步步教你如何配置Java环境变量(超级详细)
  16. 华为服务变革转型ITR流程再造的核心精髓许浩明老师一篇文章总结!
  17. ElasticSearch之别名_aliases
  18. 爬虫实战5:豆瓣读书爬取
  19. 机床测头应用二:自动补偿功能,提升生产良率
  20. 什么是网络爬虫,网络爬虫有什么用?

热门文章

  1. 杭州区块链技术 与 应用简报
  2. 常用金属材料 铝合金材料
  3. 什么是Restful风格接口?
  4. Linux学习-系统启动过程目录结构
  5. 等值连接mysql_MySQL的左连接、右连接、等值连接
  6. 从AIPL到GROW,谈互联网大厂的营销分析模型
  7. 解决VSCode官网地址下载慢
  8. 图形验证码开源库 Tess4J 的使用
  9. Redis实战 - 05 Redis 实现好友功能(关注,取关,共同关注)
  10. VR 真的来了,这些必备的入行知识你了解多少?