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

网站维护和制作怎么做会计分录手工制作飞机模型

网站维护和制作怎么做会计分录,手工制作飞机模型,网站建站系统有哪些,个人养老保险余额怎么查询LeetCode 热题 100 | 70. 爬楼梯 大家好,今天我们来解决一道经典的动态规划入门题——爬楼梯。这道题在LeetCode上被标记为简单难度,要求我们计算爬到第n阶楼梯的不同方法数,每次可以爬1或2个台阶。下面我将详细讲解解题思路,并附…

LeetCode 热题 100 | 70. 爬楼梯

大家好,今天我们来解决一道经典的动态规划入门题——爬楼梯。这道题在LeetCode上被标记为简单难度,要求我们计算爬到第n阶楼梯的不同方法数,每次可以爬1或2个台阶。下面我将详细讲解解题思路,并附上Python代码实现。

问题描述

你需要爬一个有n阶的楼梯,每次可以爬1或2个台阶。求有多少种不同的方法可以爬到楼顶。

示例:

  • n=2 → 2种 (1+1, 2)
  • n=3 → 3种 (1+1+1, 1+2, 2+1)
正确解法一:动态规划(迭代法)
def climbStairs(n):if n <= 2:return ndp = [0]*(n+1)dp[1], dp[2] = 1, 2for i in range(3, n+1):dp[i] = dp[i-1] + dp[i-2]return dp[n]

时间复杂度:O(n)
空间复杂度:O(n)

正确解法二:空间优化动态规划
def climbStairs(n):if n <= 2:return na, b = 1, 2for _ in range(3, n+1):a, b = b, a+breturn b

时间复杂度:O(n)
空间复杂度:O(1)

正确解法三:矩阵快速幂(进阶)
def climbStairs(n):def matrix_pow(mat, power):# 实现矩阵快速幂...mat = [[1,1],[1,0]]return matrix_pow(mat, n)[0][0]

时间复杂度:O(log n)
空间复杂度:O(1)


常见错误解法分析

错误解法:朴素递归
def climbStairs(n):if n == 1:return 1if n == 2:return 2return climbStairs(n-1) + climbStairs(n-2)

问题分析

  1. 存在大量重复计算(如计算climbStairs(5)会重复计算climbStairs(3))
  2. 时间复杂度高达O(2n),n=45时需要约245≈35万亿次计算
  3. 实际运行会超时(LeetCode上n=45时无法通过)
错误解法可视化(n=5时的调用树):
climbStairs(5)
├── climbStairs(4)
│   ├── climbStairs(3)
│   │   ├── climbStairs(2)
│   │   └── climbStairs(1)
│   └── climbStairs(2)
└── climbStairs(3)├── climbStairs(2)└── climbStairs(1)
改进建议:
  1. 记忆化递归(添加缓存):
def climbStairs(n, memo={1:1, 2:2}):if n not in memo:memo[n] = climbStairs(n-1) + climbStairs(n-2)return memo[n]
  1. 改用迭代法(推荐)

性能对比(n=45时)

方法时间复杂度实际运行时间
朴素递归O(2^n)>1小时
记忆化递归O(n)0.1ms
基础动态规划O(n)0.05ms
空间优化动态规划O(n)0.03ms
矩阵快速幂O(log n)0.01ms

关键总结

  1. 避免朴素递归:对于有重叠子问题的情况,递归会导致指数级时间复杂度
  2. 优先选择迭代:动态规划的迭代实现是最可靠的解法
  3. 空间可以优化:用两个变量代替数组可将空间复杂度降到O(1)
  4. 注意边界条件:n=1和n=2时需要特殊处理

最终推荐写法

def climbStairs(n):a, b = 1, 1for _ in range(1, n):a, b = b, a + breturn b

文章转载自:

http://MnPGR4QT.hrydL.cn
http://fnSKfryy.hrydL.cn
http://qSCvTGHM.hrydL.cn
http://Ym39EDbe.hrydL.cn
http://QAwnPcYY.hrydL.cn
http://d7EuQ74n.hrydL.cn
http://jo9CjVk5.hrydL.cn
http://qhWKtMWT.hrydL.cn
http://AmavisgH.hrydL.cn
http://coL464IW.hrydL.cn
http://iQ86CTt8.hrydL.cn
http://GYO1UCRG.hrydL.cn
http://tyNM7HVI.hrydL.cn
http://0wTJnhWf.hrydL.cn
http://oT02XnM8.hrydL.cn
http://WwB9xa0M.hrydL.cn
http://B9DxsySM.hrydL.cn
http://3imDzMFO.hrydL.cn
http://x1GKgLMi.hrydL.cn
http://WxMFtOOy.hrydL.cn
http://9attJK2r.hrydL.cn
http://CPSm4P6j.hrydL.cn
http://C6d2j2CM.hrydL.cn
http://2MBHUJhu.hrydL.cn
http://3t80ICjK.hrydL.cn
http://RAznGDf3.hrydL.cn
http://mfu5OKI0.hrydL.cn
http://Ppk2VOH0.hrydL.cn
http://x7xAh9LH.hrydL.cn
http://gOJHkaZY.hrydL.cn
http://www.dtcms.com/wzjs/753115.html

相关文章:

  • 帮人做ppt的网站wordpress正计时代码
  • 做微商如何网站推广南昌网站建设58
  • 如何建设一个子网站龙华网站建设深圳信科
  • 深圳网站建设企业名录it外包企业
  • 阿里云可以做电商网站吗微信开放平台的发展前景
  • 建筑工具网站邮箱注册网站
  • 南海网站制作四川省住房和城乡建设厅考试报名
  • wordpress我爱搜罗主题遂宁网站优化
  • nas可以做网站吗wordpress 数据库配置
  • 英文建站软件建设网站群的好处
  • 高端建站神器网上注册公司名字审核
  • 新民企业自助建站asp做网站 的pdf教程
  • 做mv主题网站网站软件下载app
  • 温州网站建设方案报价wordpress 4.6.2
  • 网站怎么做ipfs公司注册资金50万和100万的区别
  • 伍佰亿门户网站网上智慧团建官网入口
  • 网站建设中主页源码手机网站域名
  • linux建设网站wordpress使postid顺序
  • 网站软文怎么写南阳网站推广排名
  • 织梦修改网站后备份网页qq登录保护不再开启入口
  • 重庆网站建站系统平台做一个网站的完整教程
  • h5个网站的区别网页制作与前端开发
  • 网站的空间是便宜做网站8818
  • 大连网站设计公司网站如何做关健词收录
  • 青岛企业建站没有域名 怎么做网站链接
  • 移动网站开发 书山东建设监理协会官方网站
  • 做网站外包需要提供什么四川省送变电建设有限责任公司网站
  • 中兴的网站谁做的商城网站验收
  • 做网站要切图吗邢台168
  • 专门做图片的网站吗房地产企业网站开发