2025年Leetcode做题日记:70. 爬楼梯(PYTHON)

Leetcode做题日记:70. 爬楼梯(PYTHON)假设你正在爬楼梯 需要 n 阶你才能到达楼顶 每次你可以爬 1 或 2 个台阶 你有多少种不同的方法可以爬到楼顶呢 注意 给定 n 是一个正整数 示例 1 输入 2 输出 2 解释 有两种方法可以爬到楼顶 1 阶 1 阶 2 阶 示例 2

大家好,我是讯享网,很高兴认识大家。

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

示例 1:

输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。


讯享网

  1. 1 阶 + 1 阶
  2. 2 阶

示例 2:

输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。

  1. 1 阶 + 1 阶 + 1 阶
  2. 1 阶 + 2 阶
  3. 2 阶 + 1 阶
 minh=[1,2] #每次只能跳1,2,步 ans=[] def plt(l1,h1,n,ans): if h1==n: #记录成功 ans.append(1) return else: for i in l1: if h1 + i <=n: plt(l1,h1+i,n,ans) else: break plt(minh,0,n,ans) return len(ans)

讯享网

但是再第38个楼梯超时了
第二次的代码:
使用带备忘录的递归算法:
每个值只算一遍

讯享网 beiwl=[0]*(n+1) #备忘录 def plt(n): if beiwl[n]>0:#如果备忘录中有值,直接使用  return beiwl[n] elif n<=2: beiwl[n]=n #这里一开始我写成==,半天结果全是0,注意 return beiwl[n] else: beiwl[n]=plt(n-1)+plt(n-2) #备忘录里没值,则计算 return beiwl[n] return plt(n)

24ms,排名98%

小讯
上一篇 2025-04-07 11:07
下一篇 2025-03-16 23:30

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/37500.html