Skip to content

climbStairs

爬楼梯问题 - 计算爬到楼顶有多少种不同方法。

输入配置

执行过程

步骤 1 / 5
初始化:dp[1]=1, dp[2]=2
阶数1
1
阶数2
2
当前计算
规律: 斐波那契数列

算法说明

爬楼梯问题:每次可以爬1或2个台阶,求爬到n阶的方法数。本质是斐波那契数列。时间复杂度O(n),空间复杂度O(1)。

函数签名

typescript
function climbStairs(n: number): number
function minCostClimbingStairs(cost: number[]): number

参数

参数名类型必填说明
nnumber楼梯阶数
costnumber[](变种)每阶的花费

返回值

类型说明
number方法数或最小花费

工作原理

climbStairs

本质是斐波那契数列:

  1. dp[i] = dp[i-1] + dp[i-2]
  2. 空间优化: 只需保存前两个值

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

minCostClimbingStairs

计算爬到楼顶的最小花费:

  1. 可以从第0阶或第1阶开始
  2. dp[i] = min(dp[i-1] + cost[i-1], dp[i-2] + cost[i-2])

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