LeetCode爬楼梯

简介: 解决LeetCode上“爬楼梯”问题的动态规划方法,其中每次可以爬1或2个台阶,目标是计算到达楼顶的不同方法数。

LeetCode爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n
是一个正整数。
示例 1: 输入: 2 输出: 2
示例 2: 输入: 3 输出: 3

**1阶  1种
  2阶  2种
  3阶  3种
  4阶  5种
  f(n) = f(n-1)+f(n-2)
**
int climbStairs(int n){


    //递归会超时
    // if(n == 0 || n == 1 || n == 2)
    //     return n;
    // return climbStairs(n-1)+climbStairs(n-2);

    //动态规划
    if(n<3)
        return n;
    int dp[n+1];    //定义一个缓存数组保存前n阶楼梯的值
    dp[0] = 0;
    dp[1] = 1;
    dp[2] = 2;
    for(int i = 3; i < n + 1; i++)  //n阶  dp[n]
    {
        dp[i] = dp[i-1]+dp[i-2];  //给数组赋值
    }
    return dp[n];
}
相关文章
|
4月前
|
算法 Java
LeetCode第70题爬楼梯
这篇文章是关于LeetCode第70题"爬楼梯"的解题分享。作者首先分析了题目,指出这是一个简单的问题,并且可以通过观察发现爬楼梯的规律:到达第n层楼梯的走法数等于到达第n-1层和第n-2层楼梯的走法数之和。接着,作者提供了一个Java语言的代码实现,使用了迭代的方式来计算爬楼梯的走法数。最后,作者总结了动态规划思想在解决这类问题时的应用,强调了通过观察问题找出规律的重要性。
LeetCode第70题爬楼梯
|
7月前
力扣198.打家劫舍(简单动态规划)
力扣198.打家劫舍(简单动态规划)
|
6月前
|
Java Go C++
Leetcode70. 爬楼梯(动态规划)
Leetcode70. 爬楼梯(动态规划)
32 0
|
7月前
力扣213打家劫舍2(简单动态规划)
力扣213打家劫舍2(简单动态规划)
|
7月前
【力扣】70. 爬楼梯
【力扣】70. 爬楼梯
|
7月前
leetcode-70:爬楼梯
leetcode-70:爬楼梯
49 0
leetcode:70. 爬楼梯
此题运用递归思想。当只有1个台阶,那么只有1种方法爬到楼顶——跨一个台阶;当有2个台阶时,有2种方法爬到楼顶——跨一个台阶跨两次或直接跨两个台阶。当有3个台阶或更多台阶时,则可以选择先跨一个台阶还是先跨两个台阶,剩下的台阶再进行选择是先跨一个台阶还是先跨两个台阶……从而实现递归
42 0
|
缓存 Java Python
leetcode.70:爬楼梯
leetcode.70:爬楼梯
72 0