//假设你正在爬楼梯。需要 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-04-13 18:04:40 发布