首页 > 其他分享 >2023-07-13 【动态规划】爬楼梯

2023-07-13 【动态规划】爬楼梯

时间:2023-07-13 18:35:08浏览次数:47  
标签:13 爬楼梯 07 int 1f returnValue 2023 2n 1n

题目

链接:爬楼梯

详细:假设你正在爬楼梯。需要 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

具体思路 思路提供:Storm https://leetcode.cn/problems/climbing-stairs/solutions/2252184/70-pa-lou-ti-by-stormsunshine-gj2k/

对于非负整数 nnn,计算到达第 nnn 个台阶的方案数 f(n)f(n)f(n) 的规则如下。

当 n≤1n \le 1n≤1 时,f(n)=1f(n) = 1f(n)=1。

当 n≥2n \ge 2n≥2 时,f(n)=f(n−1)+f(n−2)f(n) = f(n - 1) + f(n - 2)f(n)=f(n−1)+f(n−2)。

根据计算规则,直观的做法是使用递归实现计算到达第 nnn 个台阶的方案数。递归的终止条件是 n≤1n \le 1n≤1,此时返回 111。当 n≥2n \ge 2n≥2 时,使用递归计算 f(n)f(n)f(n)。

不带记忆化的递归存在重复计算,时间复杂度是指数级,该时间复杂度过高,需要优化。

使用记忆化搜索可以避免重复计算,将时间复杂度降低到线性。

记忆化搜索的边界情况是当 n≤1n \le 1n≤1 时 f(n)=1f(n) = 1f(n)=1,此时可直接返回结果。当 n≥2n \ge 2n≥2 时,f(n)=f(n−1)+f(n−2)f(n) = f(n - 1) + f(n - 2)f(n)=f(n−1)+f(n−2),需要使用哈希表存储非边界情况的已经计算过的结果。计算得到 f(n)f(n)f(n) 即为结果。

public class Solution {
    public int ClimbStairs(int n) {
       return returnValue(n);
    }
    private int returnValue(int i){
        if(i==1) return 1;
        if(i>0&&i>1){
            return returnValue(i-1)+returnValue(i-2);
        }
        return 1;
    }
}

总结

爬楼梯的f(n)和斐波那契数列相似,所以数学一定要学好。

结尾

感谢您的阅读,如果有收获麻烦点个关注!如果有任何疑问或意见,可以评论区发表您的想法。
其他平台
公众号:【长生小殿】
B站:【月长生殿主】

标签:13,爬楼梯,07,int,1f,returnValue,2023,2n,1n
From: https://www.cnblogs.com/WH5212/p/17551479.html

相关文章

  • 行业追踪,2023-07-13,新样式来了,更清晰地追踪行业趋势
    自动复盘2023-07-13凡所有相,皆是虚妄。若见诸相非相,即见如来。k线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让市场来告诉你跟踪板块总结:成交额超过100亿排名靠前,macd柱由绿转红成交量要大于均线有必要给每个行......
  • 这还不冲?Github上的大佬总结的2023经典大厂面试题,全会拿35k
    前言2023的上半年已经结束了,但是我发现有很多朋友没能拿到自己心仪的offer,其实并不是自身能力差,而且没有充足的准备面试。耗时一个月,收集了全网最热门的大厂面试题,我们程序员与别的行业不一样,除了上学的时候要做题,我们上班了找工作还得做题!我分享的结合目前互联网公司常见的面试考......
  • 2023Tsinghua-HKUST F <最小生成树 Prim>
    题目F.Freeway-travellingSalesman代码Code//最小生成树Prim#include<iostream>#include<algorithm>#include<vector>#include<queue>#include<cstring>usingnamespacestd;usingLL=longlong;usingPII=pair<int,int......
  • 2023Tsinghua-HKUSTA G <最短路 Dijkstra>
    题目G.TreasureHuntinMaze代码Code//<堆优化dijkstra>//分别从起点和终点进行dijkstra,得到i,j到起点和终点的最短距离和最短路径数,//则最短路为dis0[x][y]+dis1[x][y],最短路径数为cnt0[x][y]*cnt1[x][y]#include<iostream>#include<algorithm>#incl......
  • 2023全球数字经济大会召开,天翼云携手产业链共建开放共赢云生态
    近日,由北京市人民政府、国家发展和改革委员会、工业和信息化部、商务部、国家互联网信息办公室、中国科学技术协会共同主办,中国云产业联盟暨中关村云计算产业联盟(简称“云联盟”)承办的“2023全球数字经济大会·云融技术创新引领论坛”在国家会议中心隆重召开。天翼云科技有限公司......
  • codeforces1311E
    题目链接sol:先建一条链,然后把下面的点一个个往上面移,优先移到最上面,如果上面满了就往下一层,知道刚刚好凑满距离,如果最后不能移了就说明不能凑出给定的距离#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefpair<int,int>pii;#definefifir......
  • 【漏洞复现】CVE-2023-27372 RCE漏洞
    产品介绍SPIP是一个互联网发布系统,其中非常重视协作工作,多语言环境和Web作者的易用性。它是自由软件,在GNU/GPL许可证下分发。这意味着它可以用于任何互联网站点,无论是个人的还是机构的,非营利的还是商业的。漏洞概述SPIPCmsv4.2.1之前版本允许通过公共区域中的表单值远程执行......
  • 基于Qt的自动贩卖机系统[2023-07-13]
    基于Qt的自动贩卖机系统[2023-07-13]某公司请你为其生产的自动贩卖机编写软件。这种无人值守自动贩卖机贩卖价值为ABC三种商品,价格分别为2元,3元和6元。顾客投入10元的纸币,然后选择购买3种商品之一,自动贩卖机吐出商品,并且找给用户零钱。如果商品用完,或者无法找零,则给出用户一个提......
  • 【漏洞复现】用友NC uapjs RCE漏洞(CNVD-C-2023-76801)
    产品介绍    用友NC是一款企业级ERP软件。作为一种信息化管理工具,用友NC提供了一系列业务管理模块,包括财务会计、采购管理、销售管理、物料管理、生产计划和人力资源管理等,帮助企业实现数字化转型和高效管理。漏洞概述     用友NC及NCCloud系统存在任意文件上......
  • Oracle EBS - How Are Shipping Dates Calculated? (Doc ID 1076040.1)
    OracleShippingExecution-Version11.5.10.2to12.2.10[Release11.5.10to12.2]Informationinthisdocumentappliestoanyplatform.<br* ***GOALHowdoesE-BusinessSuite(EBS)derivetheMaterialTransactionDate?WhatisthepurposeoftheIniti......