【动态规划】Leetcode 70. 爬楼梯【简单】

爬楼梯

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

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

示例 1

输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。

  1. 1 阶 + 1 阶
  2. 2 阶

解题思路

  • 1、使用动态规划,定义一个数组dp,其中dp[i]表示到达第i阶楼梯的不同方法数。
  • 2、初始化dp[0]和dp[1]为1,分别表示到达第0阶和第1阶楼梯的方法数为1。
  • 3、对于每一阶楼梯i,有两种方式到达:从第i-1阶楼梯爬1步,或者从第i-2阶楼梯爬2步。
  • 4、因此,动态规划方程为:dp[i] = dp[i - 1] + dp[i - 2]。
  • 5、最终返回dp[n],即到达第n阶楼梯的不同方法数。

Java实现

public class ClimbingStairs {

    public static int climbStairs(int n) {
        if (n <= 2) {
            return n;
        }

        int[] dp = new int[n + 1];
        dp[1] = 1;
        dp[2] = 2;

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

        return dp[n];
    }

    public static void main(String[] args) {
//        int n1 = 2;
//        System.out.println(climbStairs(n1)); // Output: 2
//
//        int n2 = 3;
//        System.out.println(climbStairs(n2)); // Output: 3

        int n8 = 8;
        System.out.println(climbStairs(n8)); // Output: 34
    }
}

时间空间复杂度

  • 时间复杂度:遍历一次数组,时间复杂度为O(n),其中n为楼梯的阶数。

8 空间复杂度:使用了长度为n + 1的数组dp,空间复杂度为O(n)。

相关推荐

  1. 动态规划Leetcode 70. 楼梯简单

    2024-04-24 16:06:03       10 阅读
  2. 动态规划|70.楼梯(进阶)

    2024-04-24 16:06:03       34 阅读
  3. LeetCode 70. 楼梯

    2024-04-24 16:06:03       46 阅读
  4. Leetcode 70 楼梯

    2024-04-24 16:06:03       39 阅读
  5. LeetCode70 楼梯

    2024-04-24 16:06:03       23 阅读
  6. LeetCode 70 楼梯

    2024-04-24 16:06:03       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-24 16:06:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-24 16:06:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-24 16:06:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-24 16:06:03       18 阅读

热门阅读

  1. Qt5中的常用模块

    2024-04-24 16:06:03       12 阅读
  2. 变电站综合监控系统系统组成分析

    2024-04-24 16:06:03       16 阅读
  3. 富格林:掌握鉴别阻挠虚假套路

    2024-04-24 16:06:03       12 阅读
  4. 5分钟快速搭建k8s集群1.29.x

    2024-04-24 16:06:03       13 阅读
  5. MySQL中的关键字深入比较:UNION vs UNION ALL

    2024-04-24 16:06:03       12 阅读
  6. 分组排序取第一条数据 SQL写法

    2024-04-24 16:06:03       11 阅读
  7. Redis 大KEY/慢查询问题的排查和解决

    2024-04-24 16:06:03       15 阅读
  8. flutter组件 InheritedWidget

    2024-04-24 16:06:03       14 阅读
  9. leetcode922-Sort Array By Parity II

    2024-04-24 16:06:03       11 阅读
  10. 图书借阅系统开发笔记

    2024-04-24 16:06:03       11 阅读