//假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
// 假设n = 1 O==[===========> 1种 0 1 0
// 假设n = 2 O==[===========> 1+1 2 2种 1 2 1
// 假设n = 3 O==[===========> 1+1+1 2+1 1+2 3种 1 3 2
// 假设n = 4 O==[===========> 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 5种种 4
// 假设n = 5 O==[===========> 1+1+1+1+1 1+1+1+2 1+1+2+1 1+2+1+1 1+2+2 2+1+1+1 2+2+1 2+1+2 8种 7
// 假设n = 6 O==[===========> 1+1+1+1+1+1 1+1+1+1+2 1+1+1+2+1 1+1+2+1+1 1+2+1+1+1 1+2+2+1 1+1+2+2 1+2+1+2 2+2+2 2+1+1+2 2+1+2+1 2+2+1+1 2+1+1+1+1 9种 8
// 可以理解为每次要爬的楼梯的方法都是前面两次的和
// 既 数组滚动
function climbStairs(n: number): number {
let step1: number = 0,
step2: number = 0,
step: number = 1
for (let i:number = 0; i < n; i++) {
step1 = step2
step2 = step
step = step1 + step2
}
return step
};
leetCode -爬楼梯
最新推荐文章于 2025-12-28 17:52:30 发布
本文介绍如何利用动态规划求解经典的‘爬楼梯’问题,通过示例和代码展示如何计算从1到n阶楼梯的不同走法,强调算法背后的递推关系和数组滚动思想。

122

被折叠的 条评论
为什么被折叠?



