【力扣】70. 爬楼梯

简介: 【力扣】70. 爬楼梯

题目描述

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

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


示例 1:


输入:n = 2

输出:2

解释:有两种方法可以爬到楼顶。


1 阶 + 1 阶

2 阶

示例 2:


输入:n = 3

输出:3

解释:有三种方法可以爬到楼顶。


1 阶 + 1 阶 + 1 阶

1 阶 + 2 阶

2 阶 + 1 阶

提示:


1 <= n <= 45

解决方案

动态规划法


根据分析,计算爬到第 x 级台阶的方案,考虑最后一步可能跨了一级台阶,也可能跨了两级台阶,倒数第二步也可能跨了一级台阶或跨了两级台阶,这样可以通过递推方式计算,得出如下式子:f(x)=f(x−1)+f(x−2)

  • C
int climbStairs(int n) {
    int array[45] = {1, 2, 0};

    for(int i = 2; i < n; i++)
    {
        array[i] = array[i - 1] + array[i - 2];
    }
 
    return array[n - 1];
}


相关文章
|
2月前
|
算法 Java
LeetCode第70题爬楼梯
这篇文章是关于LeetCode第70题"爬楼梯"的解题分享。作者首先分析了题目,指出这是一个简单的问题,并且可以通过观察发现爬楼梯的规律:到达第n层楼梯的走法数等于到达第n-1层和第n-2层楼梯的走法数之和。接着,作者提供了一个Java语言的代码实现,使用了迭代的方式来计算爬楼梯的走法数。最后,作者总结了动态规划思想在解决这类问题时的应用,强调了通过观察问题找出规律的重要性。
LeetCode第70题爬楼梯
|
5月前
力扣198.打家劫舍(简单动态规划)
力扣198.打家劫舍(简单动态规划)
|
5月前
力扣337.打家劫舍3(树形dp)
力扣337.打家劫舍3(树形dp)
|
5月前
力扣213打家劫舍2(简单动态规划)
力扣213打家劫舍2(简单动态规划)
|
5月前
|
Java
leetcode-198:打家劫舍
leetcode-198:打家劫舍
39 0
leetcode-198:打家劫舍
|
5月前
leetcode-70:爬楼梯
leetcode-70:爬楼梯
42 0
|
5月前
|
Java
leetcode-337:打家劫舍 III
leetcode-337:打家劫舍 III
41 0
leetcode:70. 爬楼梯
此题运用递归思想。当只有1个台阶,那么只有1种方法爬到楼顶——跨一个台阶;当有2个台阶时,有2种方法爬到楼顶——跨一个台阶跨两次或直接跨两个台阶。当有3个台阶或更多台阶时,则可以选择先跨一个台阶还是先跨两个台阶,剩下的台阶再进行选择是先跨一个台阶还是先跨两个台阶……从而实现递归
34 0
leetcode 337 打家劫舍III
leetcode 337 打家劫舍III
79 0
leetcode 337 打家劫舍III