首页 > 其他分享 >爬楼梯(青蛙爬楼)

爬楼梯(青蛙爬楼)

时间:2024-11-11 11:44:28浏览次数:1  
标签:台阶 int 青蛙 该题 爬楼梯 爬楼 方法 dp

题目

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

该题有三种解法:递归分治、动态规划(dp)、斐波那契数列法。

动态规划做法:

分析

我们可以通过两部分爬到n阶台阶:

  • 通过 n-1阶台阶
  • 通过 n-2阶台阶

代码表示也就是:f(n)=f(n-1) + f(n-2)
在动态规划里,这个方程叫做转移方程,用来表示转移状态。

动态规划通常一分为三:

  • 初始化
  • 转移
  • 结束状态
就该题而言:
  1. 初始化:
    f(1)=1; //表示爬到第1阶台阶,有一种方法。
    f(2)=2; //表示爬到第2阶台阶,有两种方法。

  2. 转移:
    到第n阶台阶的方法数 = n-1阶台阶的方法数 + n-2阶台阶的方法数。
    因为每次你可以爬 1 或 2 个台阶,所以到第n阶时,需要计算n-1和n-2阶台阶的方法数。

  3. 结束状态:
    通常是算法结束的判断。
    该题只要计算出n阶的方法数,就算是结束。

代码

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

题目链接:https://leetcode.cn/problems/climbing-stairs/description/?envType=study-plan-v2&envId=dynamic-programming

参考链接:
https://blog.csdn.net/qq_73900397/article/details/134608459

标签:台阶,int,青蛙,该题,爬楼梯,爬楼,方法,dp
From: https://www.cnblogs.com/Bosiju/p/18539394

相关文章

  • 乌龟棋(琪露诺速冻青蛙plus版)
    洛谷乌龟棋与琪露诺速冻青蛙不同的是,移动某步长有次数限制。速冻青蛙由于没有次数限制,步数不用加入dp数组考虑。而乌龟棋步数有限制,以步数构建dp数组,位置可由dp数组计算出。#include<bits/stdc++.h>usingnamespacestd;longlongdp[41][41][41][41],n,m;inta[1000],b[5],c......
  • 代码随想录算法训练营 day37 day38| 卡码网52.完全背包 518. 零钱兑换 II 377.
    学习资料:https://programmercarl.com/背包问题理论基础完全背包.html#算法公开课相比于01背包,完全背包中每个物品都可以无限次的放入组合:先遍历物品,再逆序遍历背包排列:先逆序遍历背包,再遍历物品学习记录卡码网52.携带研究资料(dp[i]代表当重量为i时的最大价值)点击查看代码n......
  • js.青蛙过河
    链接:403.青蛙过河-力扣(LeetCode)题目:一只青蛙想要过河。假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有)。青蛙可以跳上石子,但是不可以跳入水中。给你石子的位置列表 stones(用单元格序号 升序 表示), 请判定青蛙能否成功过河(即能......
  • 【图解版】力扣第70题:爬楼梯
    推理出状态表达式f(5)表示到达第5层,所有可能的方法数。到达第5层,有可能是从第4层走一步上来,也有可能是从第3层走两步上来。所以我们可以慢慢延伸,画出上面......
  • 《程序员修炼之道:从小工到专家》阅读笔记3---石头汤与煮青蛙的启示
    《程序员修炼之道:从小工到专家》中的“石头汤”与“煮青蛙”的故事,给我带来了深刻的启示。“石头汤”的故事告诉我们,在团队协作中,要善于引导他人参与,共同完成项目。当我们在开发过程中需要其他团队配合时,不能只是一味地等待他们的支持,而是要先做出一些成果,让别人看到项目的......
  • LeetCode_70. 爬楼梯_java
    1、题目70.爬楼梯https://leetcode.cn/problems/climbing-stairs/假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?示例1:输入:n=2输出:2解释:有两种方法可以爬到楼顶。1.1阶+1阶2.2阶示例2:输......
  • 70_爬楼梯
    70_爬楼梯【问题描述】假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?【算法设计思想】定义状态:状态是指问题的一个特定阶段的状态。对于“爬楼梯”问题,状态可以定义为dp[i],表示到达第i阶楼梯的方法数。......
  • 力扣 简单 70.爬楼梯
    文章目录题目介绍题解题目介绍题解思路分析:确定dp数组以及下标的含义:dp[i]:爬到第i层楼梯,有dp[i]种方法确定递推公式:从dp[i]的定义可以看出,dp[i]可以有两个方向推出来。首先是dp[i-1],上i-1层楼梯,有dp[i-1]种方法,那么再一步跳一个台阶不就是dp[i]了么。还有......
  • DAY42 ||完全背包理论 | 518. 零钱兑换 II | 377. 组合总和 Ⅳ|70. 爬楼梯 (进阶)
    完全背包理论什么是完全背包:有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。完全背包和01背包问题唯一不同的地方就是,每种物品有无限件。不......
  • 代码随想录算法训练营Day42 | 完全背包理论基础、518.零钱兑换II、377. 组合总和 Ⅳ、
    目录完全背包理论基础518.零钱兑换II377.组合总和Ⅳ卡玛网57.爬楼梯(进阶版)完全背包理论基础题目52.携带研究材料(第七期模拟笔试)题目描述:小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间......