当前位置: 首页 > news >正文

织梦教育咨询企业网站模板厦门谷歌推广

织梦教育咨询企业网站模板,厦门谷歌推广,android软件开发用什么工具,昆明参差网站理论基础 题型 动归基础(这一节就是基础题)背包问题打家劫舍股票问题子序列问题 动态规划五部曲 确定dp数组及其下标的含义确定递推公式dp数组如何初始化遍历顺序打印dp数组 509. 斐波那契数 简单~ dp数组及下标含义: dp[i]表示第i各斐…

理论基础

题型

  1. 动归基础(这一节就是基础题)
  2. 背包问题
  3. 打家劫舍
  4. 股票问题
  5. 子序列问题

动态规划五部曲

  1. 确定dp数组及其下标的含义
  2. 确定递推公式
  3. dp数组如何初始化
  4. 遍历顺序
  5. 打印dp数组

509. 斐波那契数

简单~

  1. dp数组及下标含义: dp[i]表示第i各斐波那契数,值为dp[i]
  2. 递推公式:dp[i] = dp[i-1] -dp[i-2]
  3. dp数组如何初始化:dp[0] = 0; dp[1] = 1;题目描述中有敌意
  4. 遍历顺序:从前往后
  5. 打印dp数组

当前位置的值只与该位置的前两个数值有关,只需要维护长度为2的数组。

class Solution {
public:int fib(int n) {if(n==0 || n==1) return n;vector<int> dp(2);dp[0] = 0; dp[1] = 1;for(int i=2; i<=n; i++){int sum = dp[1] + dp[0];dp[0] = dp[1];dp[1] = sum;}return dp[1];}
};
class Solution {public int fib(int n) {if(n == 0 || n == 1) return n;int[] dp = new int[2];dp[0] = 0; dp[1] = 1;for(int i = 2; i<=n; i++){int sum = dp[0] + dp[1];dp[0] = dp[1];dp[1] = sum;}return dp[1];}
}
class Solution(object):def fib(self, n):""":type n: int:rtype: int"""if n == 0 or n == 1:return ndp = [0,1]for i in range(2, n+1):sum_ = dp[0] + dp[1]dp[0] = dp[1]dp[1] = sum_return dp[1] 

参考文章

  1. https://programmercarl.com/0509.%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE

70. 爬楼梯

要明白如果爬n层有两种情况: 一种是从n-2层迈两步上来的,一种是从n-1层迈一步上来的。所以到达第n层的方法数量=到达第n-2层的方法数+到达第n-1层的方法数。

  1. dp数组及其下标含义 dp[i] 表示到达第i层的方法数量
  2. 递推公式 dp[i] = dp[i-1] + dp[i-2]
  3. dp数组初始化 dp[1] = 1 dp[2] = 2,0没有实际意义
  4. 遍历顺序:从前往后
  5. 打印dp数组

当前位置数值只与当前位置前2个位置数值有关,只需要维护长度为2的数组,但是0没有实际意义,为了实现更加明确的初始化我们定义长度为3的数组,0这个位置不进行初始化。

class Solution {
public:int climbStairs(int n) {if(n==1 || n==2) return n;vector<int> dp(3);dp[1] = 1;//空出0来因为没有意义dp[2] = 2;for(int i = 3; i <= n; i++){int sum = dp[1] + dp[2];dp[1] = dp[2];dp[2] = sum;}return dp[2];}
};
class Solution {public int climbStairs(int n) {if(n == 1 || n == 2) return n;int[] dp = new int[3];dp[1] = 1; dp[2] = 2;for(int i = 3; i <= n; i++){int sum = dp[1] + dp[2];dp[1] = dp[2];dp[2] = sum;}return dp[2];}
}
class Solution(object):def climbStairs(self, n):""":type n: int:rtype: int"""if n == 1 or n == 2:return ndp = [None, 1, 2]for i in range(3, n+1):sum_ = dp[1] + dp[2]dp[1] = dp[2]dp[2] = sum_return dp[2]

参考文章

  1. https://programmercarl.com/0070.%E7%88%AC%E6%A5%BC%E6%A2%AF.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE

746. 使用最小花费爬楼梯

Note:注意题目描述,该位置不花费体力,往上跳花费体力。并且cost的长度是顶楼。

  1. dp数组及其下标含义:dp[i] 到达第i层所需要的最小花费为dp[i]
  2. 递推公式: dp[i] = min(dp[i-1] + cost[i-1], dp[i-2] + cost[i-2]);
  3. dp数组如何初始化: dp[0]=0;dp[1]=0;//因为当前位置不花费,向上跳才花费所以都初始化为0
  4. 遍历顺序:从前往后
  5. 打印dp数组
class Solution {
public:int minCostClimbingStairs(vector<int>& cost) {if(cost.size()<2) return 0;vector<int> dp(2);for(int i = 2; i <= cost.size(); i++){int minCost = min(dp[0] + cost[i-2], dp[1] + cost[i-1]);dp[0] = dp[1];dp[1] = minCost;}return dp[1];}
};
class Solution {public int minCostClimbingStairs(int[] cost) {if(cost.length<2) return 0;int[] dp = new int[]{0, 0};for(int i = 2; i <= cost.length; i++){int minCost = Math.min(dp[0] + cost[i-2], dp[1] + cost[i-1]);dp[0] = dp[1];dp[1] = minCost;}return dp[1];}
}
class Solution(object):def minCostClimbingStairs(self, cost):""":type cost: List[int]:rtype: int"""if len(cost)<2:return 0dp = [0, 0]for i in range(2, len(cost)+1):minCost = min(dp[0]+cost[i-2], dp[1]+cost[i-1])dp[0] = dp[1]dp[1] = minCostreturn dp[1]

参考文章

  1. https://programmercarl.com/0746.%E4%BD%BF%E7%94%A8%E6%9C%80%E5%B0%8F%E8%8A%B1%E8%B4%B9%E7%88%AC%E6%A5%BC%E6%A2%AF.html
http://www.yayakq.cn/news/163952/

相关文章:

  • 网站制作需要哪些软件有哪些开源html5 网站模板
  • 关于网站建设的讲话小程序开发文档pdf
  • 门户网站建设 简报对外宣传网站建设方案
  • 做多肽的都有哪些网站网页设计个人网站
  • 爱站网爱情电影网龙岩网站建设全包
  • 云浮新兴县做网站企业手机网站案例
  • 浏览器直接进入网站的注意事项彩票网站如何做
  • 做网站 指导一个域名下两个wordpress
  • 做娱乐网站少10个页面高端房产网站建设
  • c#+网站开发实例wordpress 调出编辑器
  • 做网站下载哪个软件网站开发费怎么入账
  • 西部数码创建子网站东莞圆心科技网站开发
  • 如何用虚拟主机做网站阿里云 做网站 百度开放云
  • 内网网站开发报价介绍网站开发的意义
  • 网站建设公司专业网站研发开发药品推荐网站模板
  • 怎么做网站关键词优化使用jquery的网站
  • 网站架设的结构代理公司注册机构
  • wordpress在本地运行很慢优化设计电子版在哪找
  • 网站的栏目结构简图怎么做wordpress调用ip查询
  • 信誉好的大连网站建设中国住建部
  • 网站开发付款方式和比例手机网站建设品牌
  • ps做图下载网站做企业网站费用
  • 专业网站建设课程网站服务器做缓存
  • 网站开发费用做账网站主机建设方案
  • 广州网站推广软件竞价托管是啥意思
  • 湖北省建设主管部门网站白沟做网站
  • 肇庆建网站服务网站维护服务器
  • 做企业网站的费用挂什么科目seo排名优化方法
  • 关于设计的网站seo权威入门教程
  • 什么是网站名称文件夹手机软件开发外包