70. 爬楼梯
题目
-
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
示例 1:
输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。1. (1 阶 + 1 阶);2. (2 阶)
示例 2:
输入:n = 3
输出:3
解释:有三种方法可以爬到楼顶。1. (1 阶 + 1 阶 + 1 阶);2. (1 阶 + 2 阶);3. (2 阶 + 1 阶)
法一、暴力
-
思路:站到最后一梯往回看,可知:可以从n-1阶跨上来,也可以从n-2阶跨上来,其实每一阶都是如此
-
相当于斐波那契数列
class Solution:
def climbStairs(self, n: int) -> int:
if n==0 or n==1:
return 1
return self.climbStairs(n-1)+self.climbStairs(n-2)
- 超时
法二、动态规划
class Solution:
def climbStairs(self, n: int) -> int:
f=[0]*(n+1)
f[0]=f[1]=1
for i in range (2,n+1):
f[i]=f[i-1]+f[i-2]
return f[n]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具