70. 爬楼梯解题思路

这篇具有很好参考价值的文章主要介绍了70. 爬楼梯解题思路。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目

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

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

示例 1:

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

  1. 1 阶 + 1 阶
  2. 2 阶

示例 2:

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

  1. 1 阶 + 1 阶 + 1 阶
  2. 1 阶 + 2 阶
  3. 2 阶 + 1 阶

提示:

1 <= n <= 45

解题思路

动态规划
这是一个典型的动态规划问题。可以使用递推的方式求解,具体思路如下:

假设 n 阶楼梯的爬法数量为 f(n),则有:

当 n=1 时,只有 1 种爬法,即 f(1)=1;
当 n=2 时,有 2 种爬法,即 1+1 或 2,因此 f(2)=2;
当 n>2 时,每次可以爬 1 或 2 级台阶,因此到达第 n 级台阶的爬法数 f(n) 可以由到达第 n-1 级台阶和到达第 n-2 级台阶的爬法数之和得到,即 f(n)=f(n-1)+f(n-2)。

综上所述,可以使用循环来递推求解,代码如下:

public class Solution {
    public int ClimbStairs(int n) {
    if (n <= 2) {
        return n;
    }
    int f1 = 1, f2 = 2;
    for (int i = 3; i <= n; i++) {
        int temp = f1 + f2;
        f1 = f2;
        f2 = temp;
    }
    return f2;
}
}

70. 爬楼梯解题思路文章来源地址https://www.toymoban.com/news/detail-470948.html

到了这里,关于70. 爬楼梯解题思路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 力扣:70. 爬楼梯(Python3)

    假设你正在爬楼梯。需要  n  阶你才能到达楼顶。 每次你可以爬  1  或  2  个台阶。你有多少种不同的方法可以爬到楼顶呢? 来源:力扣(LeetCode) 链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 示例 1: 输入:n = 2 输出:2 解释: 示例 2: 输入:n = 3 输出:

    2024年02月11日
    浏览(61)
  • LeetCode:509. 斐波那契数 && 70. 爬楼梯 && 746. 使用最小花费爬楼梯

    斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n 1 给定 n ,请计算 F(n) 。 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬

    2024年02月05日
    浏览(48)
  • 代码随想录Leetcode70. 爬楼梯

            空间复杂度为O(N),如果想要优化空间复杂度,则只用三个变量进行状态转移也可以,参考 代码随想录 Leetcode509. 斐波那契数-CSDN博客

    2024年02月19日
    浏览(82)
  • 377. 组合总和 Ⅳ 70.魔改爬楼梯

    题目: 给一个正整数数组和一个正整数目标值,数组的每个元素可取无限次,求总额达到目标值的最大排列数。  dp[j]含义: dp[j]:达到目标值j的整数组合数为dp[j] 递推公式: 求装满背包有几种方法(组合,排列数)用:dp[j] += dp[j - nums[i]]; 初始化: dp[0]=1 遍历顺序: 先物品

    2024年02月08日
    浏览(41)
  • leetcode(算法) 70.爬楼梯(python版)

    假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入:n = 3 输出:3 解释:有三种方法可以爬到楼顶。 1 阶 + 1 阶

    2024年02月20日
    浏览(36)
  • 动态规划之 70爬楼梯(第2道)

    题目: 假设你正在爬楼梯。需要  n  阶你才能到达楼顶。 每次你可以爬  1  或  2  个台阶。你有多少种不同的方法可以爬到楼顶呢? 题目链接:70. 爬楼梯 - 力扣(LeetCode) 示例: 解法:  假如爬到第 i 层,那要么是从第 i-1 层爬上来的,要么是从第 i-2 爬上来的。

    2024年02月13日
    浏览(69)
  • 算法leetcode|70. 爬楼梯(rust重拳出击)

    假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 1 = n = 45 面对这道算法题目,二当家的再次陷入了沉思。 可以爬一阶或者两阶台阶,那也就是说,除了初始位置,和第一阶台阶,到达其他阶台阶 n 的方式

    2024年02月12日
    浏览(41)
  • leetcode每日一练-第70题-爬楼梯

      一、思路 动态规划 二、解题方法 使用一个动态规划数组 dp 来记录到达每个台阶的不同方法数。初始情况下,当台阶数为 1 时,方法数为 1,当台阶数为 2 时,方法数为 2。然后,我们从第 3 阶开始逐步计算每一阶的方法数,方法数等于前一阶和前两阶方法数之和。最终,

    2024年02月14日
    浏览(51)
  • LeetCode 70. 爬楼梯 C/C++/Python

    欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起探讨和分享Linux C/C++/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 专栏:LeetCode刷题 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有

    2024年02月13日
    浏览(40)
  • 力扣70. 爬楼梯(动态规划 Java,C++解法)

    Problem: 70. 爬楼梯 由于本题目中第i层台阶只能由于第 i- 1 层台阶和第 i-2 层台阶走来,所以可以联想到动态规划,具体如下: 1.定义多阶段决策模型:对于每一上台阶看作一种状态; 2.定义状态转移方程:int[] dp = new int[n + 1] 用于记录第i个台阶可以走到的走法 ;dp[i] = dp[i -

    2024年01月20日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包