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

推荐优秀网站秦皇岛酒店网站设计

推荐优秀网站,秦皇岛酒店网站设计,企业自建服务器网站建设流程,wordpress建视频网站题目: 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n - 1) F(n - 2),其中…

题目:

斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给定 n ,请计算 F(n) 。

示例 1:

输入:n = 2
输出:1
解释:F(2) = F(1) + F(0) = 1 + 0 = 1
示例 2:

输入:n = 3
输出:2
解释:F(3) = F(2) + F(1) = 1 + 1 = 2
示例 3:

输入:n = 4
输出:3
解释:F(4) = F(3) + F(2) = 2 + 1 = 3

提示:

0 <= n <= 30

思路:

本题很简单,但很适合用来做动态规划(和递归)的入门题,本篇文章主要讲解一下动态规划的思路

动态规划

动规五部曲:

这里我们要用一个一维dp数组来保存递归的结果

  1. 确定dp数组以及下标的含义

dp[i]的定义为:第i个数的斐波那契数值是dp[i]

  1. 确定递推公式

为什么这是一道非常简单的入门题目呢?

因为题目已经把递推公式直接给我们了:状态转移方程 dp[i] = dp[i - 1] + dp[i - 2];

  1. dp数组如何初始化

题目中把如何初始化也直接给我们了,如下:

        dp[0] = 0dp[1] = 1
  1. 确定遍历顺序

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

  1. 举例推导dp数组

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

0 1 1 2 3 5 8 13 21 34 55

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

以上就是动态规划五部曲 这在之后将贯穿所有动态规划类的题目

完整代码和复杂度分析:

动态规划版本1(定义dp数组):

class Solution:def fib(self, n: int) -> int:# 排除 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]
  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

动态规划版本2(不自定义dp数组,仅使用3个变量来维护dp数组):

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]
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

递归版本:

class Solution:def fib(self, n: int) -> int:if n < 2:return nreturn self.fib(n - 1) + self.fib(n - 2)
  • 时间复杂度:O(2^n)
  • 空间复杂度:O(n)
http://www.yayakq.cn/news/692891/

相关文章:

  • 郑州网站开发的公司电话wordpress本地连接
  • 接私活app有哪些平台win10系统优化工具
  • wordpress网站恢复手机网站优化指南
  • 网站防御怎么做wordpress知更鸟破解
  • 嘉定华亭网站建设专业的网站公司到哪里找
  • 学网站开发的书wordpress医疗模板下载
  • 权威的岑溪网站开发企业为何做网站
  • 网站制作小常识西安推广公司
  • 外贸网站建设官网旅游门户网站建设方案模板
  • dtcms网站开发教程国内贸易平台
  • 唐山网址建站wordpress主题width=1 height=1图片不显示
  • 网站开发前端和后端用什么语言惠州网络问政平台
  • 建设网站虚拟主机是啥意思网页游戏脚本制作教程
  • 青岛知名网站建设多少钱有谁会设制网站
  • 旅游网站建设的可行性分析服装电子商务网站建设与实现
  • 整站采集wordpress自助建站 知乎
  • 外国人搞笑做视频网站百度指数大数据分享平台
  • 做网站学h5还是php怎么做推销产品的网站
  • 栾城seo整站排名WordPress怎么两个标题
  • 和平县做网站渭南网站建设网站建设
  • 石家庄网站改版中国光大国际建设工程公司网站
  • 网站制作工具有哪些网站快速排名技巧
  • 东莞网站seo价格中文网站开发语言
  • 谷歌网站建设网站方案怎么写
  • 快速做网站公司哪家专业长沙企业100强名单
  • 福建建设中心网站山西建站管理系统开发
  • 服务器网站后台登陆密码黄框显示杭州电子商务网站建设公司
  • jsp网站开发总结做a视频网站
  • 济源网站建设网站建设设计报告
  • 百度网站邀您点评绍兴seo外包公司