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

制作百度移动网站模板徐州市做网站

制作百度移动网站模板,徐州市做网站,做一个网页设计多少钱,西安网站建设查派理论基础 代码随想录 视频:从此再也不怕动态规划了,动态规划解题方法论大曝光 !| 理论基础 |力扣刷题总结| 动态规划入门_哔哩哔哩_bilibili 动态规划:如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态…

理论基础 

代码随想录

视频:从此再也不怕动态规划了,动态规划解题方法论大曝光 !| 理论基础 |力扣刷题总结| 动态规划入门_哔哩哔哩_bilibili

动态规划:如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的

对于动态规划问题,要搞清楚以下几点:

  1. 确定dp数组(dp table)以及下标的含义
  2. 确定递推公式
  3. dp数组如何初始化
  4. 确定遍历顺序
  5. 举例推导dp数组

 509. 斐波那契数 

代码随想录

视频:手把手带你入门动态规划 | LeetCode:509.斐波那契数_哔哩哔哩_bilibili

动态规划五部曲:

1.确定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数组

按照这个递推公式dp[i] = dp[i - 1] + dp[i - 2],我们来推导一下,当N为10的时候,dp数组应该是如下的数列:

0 1 1 2 3 5 8 13 21 34 55

如果代码写出来,发现结果不对,就把dp数组打印出来看看和我们推导的数列是不是一致的。

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

也可以只维护两个数值:


class Solution:def fib(self, n: int) -> int: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] = totalreturn dp[1]

 递归法:

class Solution:def fib(self, n: int) -> int:if n == 0:return 0if n== 1:return 1return self.fib(n-1)+self.fib(n-2)

 70. 爬楼梯   

代码随想录

视频:带你学透动态规划-爬楼梯(对应力扣70.爬楼梯)| 动态规划经典入门题目_哔哩哔哩_bilibili

到第三层楼梯的状态可以由第二层楼梯 和 到第一层楼梯状态推导出来,那么就可以想到动态规划

1.确定dp[i]的含义:爬到第i层楼梯,有dp[i]种方法

2.确定递推公式: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数组

class Solution:def climbStairs(self, n: int) -> int:dp = [0]*(n+1)dp[1] = 1dp[2] = 2for i in range(3,n+1):dp[i] = dp[i-1] + dp[i-2]return dp[n]

 746. 使用最小花费爬楼梯 

代码随想录

视频讲解:动态规划开更了!| LeetCode:746. 使用最小花费爬楼梯_哔哩哔哩_bilibili

1.确定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

4.遍历顺序:从递归公式dp[i] = dp[i - 1] + dp[i - 2];中可以看出,dp[i]是依赖 dp[i - 1] 和 dp[i - 2],那么遍历的顺序一定是从前到后遍历的

5.举例推导dp数组

class Solution:def minCostClimbingStairs(self, cost: List[int]) -> int:dp = [0]*(len(cost)+1)dp[0] = 0dp[1] = 0for i in range(2,len(cost)+1):dp[i] = min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2])return dp[len(cost)]

http://www.yayakq.cn/news/350267/

相关文章:

  • 郑州营销型网站制作运营给我一个网站贴吧
  • 网站备案个人和企业的区别如何免费建立个人网站
  • 多导航织梦网站模板下载地址软件的定制开发比较好的公司
  • 网站首屏做多大网站添加在线qq聊天
  • 招聘网站开发文档辽宁省城乡建设集团官网
  • 天津网络推广网站建设公司国际国内时事新闻
  • 如何建个人网站教程成都十大广告公司
  • 做网站运营的职业生涯规划房产网签
  • 江苏建设外贸公司网站网站建设需要几十万
  • 备案价格网站顶易云外贸软件
  • 中山市文联灯饰有限公司网站谁做的精准营销策略
  • photoshop设计一个精美的网站主页南海网站制作公司
  • 网站开发设计项目书网站怎么放到服务器上
  • 电子商务网站网络推广方式网站换空间不换域名对seo有影响吗
  • 班级网站源代码下载包头做网站企业
  • 太原做响应式网站设计百度软文推广怎么做
  • 手机网站导航按钮微信crm系统
  • 某网站seo诊断分析如何在后台做网站流程
  • 仿百度百科网站源码wordpress 添加顶部公告
  • 金融服务网站建设内容安居客西安网页版
  • 深圳网站建设首选上榜网络网络规划设计师资料及视频教程
  • 阿里巴巴网站建设的不足之处成都网站制作实力乐云seo
  • 中国域名网站排名西安哪家装修公司最放心
  • wordpress用户名和密码网站优化都是怎么做的
  • 做网站的费用 优帮云抖音小程序定制
  • python建设购物网站巴彦淖尔网站制作开发
  • 一级域名指向wordpress页面太原seo代理计费
  • 东莞网站建设在线推广wordpress访问地址修改
  • 正规建网站企业网站双倍浮动
  • 临沂网站设计建设厦门百城建设有限公司网站