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

网站主题咋做衡阳seo服务

网站主题咋做,衡阳seo服务,最佳外贸建站平台,大学生帮别人做网站代码随想录算法训练营Day 38| 动态规划part01 | 理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯 文章目录 代码随想录算法训练营Day 38| 动态规划part01 | 理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯理论基础一、常规题目二、解题步骤…

代码随想录算法训练营Day 38| 动态规划part01 | 理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯


文章目录

  • 代码随想录算法训练营Day 38| 动态规划part01 | 理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
  • 理论基础
    • 一、常规题目
    • 二、解题步骤
  • 509. 斐波那契数
    • 一、动态规划v1
    • 二、动态规划v2
    • 三、动态规划v3
  • 70. 爬楼梯
    • 一、动态规划v1
    • 二、动态规划v2
  • 746. 使用最小花费爬楼梯
    • 一、dp v1
    • 二、dp v2


理论基础

一、常规题目

在这里插入图片描述

二、解题步骤

对于动态规划问题,我将拆解为如下五步曲,这五步都搞清楚了,才能说把动态规划真的掌握了!

  1. 确定dp数组(dp table)以及下标的含义
  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. 确定遍历顺序
    从递归公式dp[i] = dp[i - 1] + dp[i - 2];中可以看出,dp[i]是依赖 dp[i - 1] 和 dp[i - 2],那么遍历的顺序一定是从前到后遍历的
  5. 打印dp数组

一、动态规划v1

class Solution:def fib(self, n):# 排除 Corner Caseif n == 0:return 0# 创建 dp table dp = [0] * (n + 1)# 初始化 dp 数组dp[0] = 0dp[1] = 1# 遍历顺序: 由前向后。因为后面要用到前面的状态for i in range(2, n + 1):# 确定递归公式/状态转移公式dp[i] = dp[i - 1] + dp[i - 2]# 返回答案return dp[n

二、动态规划v2

class Solution:def fib(self, n):if n<=1:return ndp=[0,1]for i in range(2,n+1):total = dp[0]+dp[1]dp[0]=dp[1]dp[1]=total  return total

三、动态规划v3

class Solution:def fib(self, n):if n<=1:return nprev0,prev1 = 0,1for _ in range(2,n+1):cur = prev0 + prev1prev0,prev1 = prev1,curreturn cur

70. 爬楼梯

题目链接

  1. 确定dp数组以及下标的含义
    dp[i]的定义为:爬到第i层楼梯,有dp[i]种方法
  2. 确定递推公式
    dp[i - 1],上i-1层楼梯,有dp[i - 1]种方法,那么再一步跳一个台阶不就是dp[i]了么。
    dp[i - 2],上i-2层楼梯,有dp[i - 2]种方法,那么再一步跳两个台阶不就是dp[i]了么
    状态转移方程 dp[i] = dp[i - 1] + dp[i - 2];
  3. dp数组如何初始化
    dp[1] = 1; dp[2] = 2;
  4. 确定遍历顺序
    从递归公式dp[i] = dp[i - 1] + dp[i - 2];中可以看出,dp[i]是依赖 dp[i - 1] 和 dp[i - 2],那么遍历的顺序一定是从前到后遍历的
  5. 打印dp数组

一、动态规划v1

class Solution(object):def climbStairs(self, n):""":type n: int:rtype: int"""dp = [0]*(n+1)if n <=2:return ndp[1]=1dp[2]=2for i in range(3,n+1):dp[i]=dp[i-1]+dp[i-2]return dp[n]

二、动态规划v2

class Solution(object):def climbStairs(self, n):""":type n: int:rtype: int"""dp=[0,1,2]if n <=2:return nfor i in range(3,n+1):total = dp[1]+dp[2]dp[1]=dp[2]dp[2]=totalreturn total

746. 使用最小花费爬楼梯

题目链接

  1. 确定dp数组以及下标的含义
    dp[i]的定义为:到达第i台阶所花费的最少体力为dp[i]
  2. 确定递推公式
    dp[i - 1] 跳到 dp[i] 需要花费 dp[i - 1] + cost[i - 1]
    dp[i - 2] 跳到 dp[i] 需要花费 dp[i - 2] + cost[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;
  4. 确定遍历顺序
    因为是模拟台阶,而且dp[i]由dp[i-1]dp[i-2]推出,所以是从前到后遍历cost数组就可以了
  5. 打印dp数组

一、dp v1

class Solution(object):def minCostClimbingStairs(self, cost):""":type cost: List[int]:rtype: int"""dp = [0] * (len(cost) + 1)dp[0] = 0  # 初始值,表示从起点开始不需要花费体力dp[1] = 0  # 初始值,表示经过第一步不需要花费体力for i in range(2, len(cost) + 1):# 在第i步,可以选择从前一步(i-1)花费体力到达当前步,或者从前两步(i-2)花费体力到达当前步# 选择其中花费体力较小的路径,加上当前步的花费,更新dp数组dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2])return dp[len(cost)]  # 返回到达楼顶的最小花费

二、dp v2

class Solution(object):def minCostClimbingStairs(self, cost):""":type cost: List[int]:rtype: int"""dp0=0dp1=0for i in range(2,len(cost)+1):dp2=min(dp1+cost[i-1],dp0+cost[i-2])dp0=dp1dp1=dp2return dp2
http://www.rdtb.cn/news/18460.html

相关文章:

  • 易语言怎么做视频网站今天新闻头条新闻
  • 做网站卖房写标题免费外链平台
  • java做网站开发成本高百度登录页面
  • 网站建设市场行情报价武汉seo结算
  • 重庆网上房地产查询备案价西安自动seo
  • 网站建设的项目方案营业推广
  • 个人备案域名可以做哪些网站吗网络营销管理系统
  • 网站建设顾问宣传链接怎么做
  • 中铁建设集团门户网登录快照seo职位招聘
  • 网站前台用什么做seo关键词优化报价
  • 北京集团公司注册流程长尾词优化外包
  • 网站pv uv有什么作用关键词优化的软件
  • 网站开发php制作品牌策略的7种类型
  • 动漫制作专业研究生考啥独立站seo实操
  • 重庆一站式建设网站平台百度云盘网页版
  • 赤峰市做网站建设的公司上海的重大新闻
  • 之梦英语版网站怎么做百度seo优化规则
  • 上海手机网站制作哪家好免费做做网站
  • 网站做好了 怎么做解析企业推广方式有哪些
  • 武汉网站外包公司简介永久免费的电销外呼系统
  • wordpress文章能发链接吗沈阳seo网站推广
  • 网站优化升级推广赚佣金
  • 柳河县做网站丈哥seo博客工具
  • wordpress 增加站长统计今日足球比赛分析推荐
  • 响应式网站建设平台如何免费发布广告
  • 学做网站在哪里关键词seo排名优化如何
  • 搜索引擎排名公司网站关键词优化竞价软件哪个好
  • 怎么搭建支付网站seo培训费用
  • 备案ip 查询网站查询网站查询系统网站注册页面
  • 鹤壁专业做网站公司引擎优化是什么意思