力扣70. 爬楼梯

动态规划

  • 思路:
    • 使用递归比较容易理解, f(n) = f(n - 1) + f(n - 2);
      • 到剩余1级台阶有 f(n - 1),到剩余2级台阶有 f(n-2);
      • 边界情况是
        • n = 0, f(0) = 1
        • n = 1, f(1) = 1
        • n = 2, f(2) = 2
      • 递归代码实现:
class Solution {
public:
    int climbStairs(int n) {
        if (n == 0) {
            return 1;
        }
        if (n == 1) {
            return 1;
        }

        if (n == 2) {
            return 2;
        }

        return climbStairs(n - 1) + climbStairs(n - 2);
    }
};
  • 很遗憾的事 n = 44 时,反馈超时了;所以,需要将递归变换一下;
  • 使用两个变量来缓存前两种情形的结果,根据转移方程 f(n) = f(n - 1) + f(n - 2),迭代 n 次即可;
class Solution {
public:
    int climbStairs(int n) {
        int p = 0;
        int q = 0;
        int result = 1;
        
        for (int step = 1; step <= n; ++step) {
            p = q;
            q = result;
            result = p + q;
        }

        return result;
    }
};

相关推荐

  1. 70. 楼梯

    2023-12-12 12:28:05       63 阅读
  2. 70.楼梯

    2023-12-12 12:28:05       28 阅读
  3. 70. 楼梯

    2023-12-12 12:28:05       27 阅读
  4. 70. 楼梯

    2023-12-12 12:28:05       25 阅读
  5. (LeetCode)——70. 楼梯

    2023-12-12 12:28:05       19 阅读
  6. 70. 楼梯(三种解法)

    2023-12-12 12:28:05       40 阅读
  7. 】每日一题—第70题,楼梯

    2023-12-12 12:28:05       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-12 12:28:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-12 12:28:05       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-12 12:28:05       82 阅读
  4. Python语言-面向对象

    2023-12-12 12:28:05       91 阅读

热门阅读

  1. 纯js+css实现手风琴

    2023-12-12 12:28:05       56 阅读
  2. linux常用命令-curl命令详解(超详细)

    2023-12-12 12:28:05       52 阅读
  3. LeetCode160. Intersection of Two Linked Lists

    2023-12-12 12:28:05       45 阅读
  4. GO设计模式——2、工厂方法模式(创建型)

    2023-12-12 12:28:05       61 阅读
  5. 利用playbook源码部署lamp

    2023-12-12 12:28:05       53 阅读
  6. 【APP安卓测试工具】adb(Android Debug Bridge)

    2023-12-12 12:28:05       41 阅读
  7. mysql分别在windows和linux下的备份策略

    2023-12-12 12:28:05       64 阅读
  8. TCP和UDP

    TCP和UDP

    2023-12-12 12:28:05      47 阅读
  9. zlib --- 与 gzip 兼容的压缩

    2023-12-12 12:28:05       54 阅读
  10. 微信小程序瀑布流组件

    2023-12-12 12:28:05       68 阅读
  11. YML学习

    2023-12-12 12:28:05       63 阅读