动态规划----1.爬楼梯

动态规划之【线性DP】第1课:通过爬楼梯案例理解动态规划的解题框架:“DP四步法” 阅读详情

70. 爬楼梯 - 力扣(LeetCode)

/**

        1阶:1步,即1种; 2阶:1步+1步或直接2步,即2种

        f(1) = 1,f(2) =2

        3阶:由1阶迈2步,或2阶迈一步; 4阶:由2阶迈2步,或3阶1步; n阶:由n-2阶迈2步,或n-1阶迈1步

        f(n) = f(n - 1) + f(n - 2)

*/

class Solution {
    /**
        1阶:1步,即1种; 2阶:1步+1步或直接2步,即2种
        f(1) = 1,f(2) =2

        3阶:由1阶迈2步,或2阶迈一步; 4阶:由2阶迈2步,或3阶1步; n阶:由n-2阶迈2步,或n-1阶迈1步
        f(n) = f(n - 1) + f(n - 2) 
    */
    
    //记录已经走过的台阶需要的方法数
    private List<Integer> memory = new ArrayList<>();

    public int climbStairs(int n) {
        //初始化,1阶与2阶可直接得出
        memory.add(1); //f(1) = 1;
        memory.add(2); //f(2) = 2;

        //return help(n);

        if(n <= 2) {
            return memory.get(n - 1);
        } 

        for(int i = 3; i <= n; i++) {
            memory.add(memory.get(i - 2) + memory.get(i - 3));
        }

        return memory.get(memory.size() - 1);
    }

    private int help(int n) {
        if(memory.size() >= n) {
            return memory.get(n - 1);
        }

        if(n == 1 || n == 2) {
            return memory.get(n);
        } else {
            memory.add(help(n - 1) + help(n - 2));
        }

        return memory.get(memory.size() - 1);
    }
}

软考高级网络规划设计师教程(第3版) "本书是由工业和信息化部教育与考试中心组织编写的考试用书,依据《网络规划设计师考试大纲》(2026年审定通过)编写。本书分为两篇:第一篇为网络规划与设计综合知识,其中第1章介绍计算机网络基础知识,第2章介绍网络互连与互联网,第3章介绍网络规划与设计的知识和方法,第4章介绍网络资源设备,第5章介绍网络安全技术,第6章介绍标准化和网络安全法规;第二篇为案例实践,其中第7章介绍网络规划案例,第8章介绍网络故障分析与处理案例,第9章介绍网络安全部署案例,第10章介绍网络规划与设计论文写作的指导思想和写作技巧。 阅读详情

相关推荐

半导体EAP系统入门指南:从零开始理解设备自动化程序(附实战案例)

本文深入浅出地介绍了半导体制造中EAP(设备自动化程序)系统的核心作用与工作原理。EAP作为连接MES与生产设备的桥梁,负责指令翻译、数据采集与实时控制,是实现晶圆厂全自动化的关键。文章通过对比手动与自动模式,阐述了EAP在提升效率、保障良率方面的价值,并提供了一个实战案例,帮助读者从零构建对半导体CIM体系中这一关键组件的理解。

weixin_29200741的博客 738

动态规划(1)——爬楼梯,最长回文子串

最近要开始练动态规划了,这个部分我一直都很害怕,很抗拒,因为一开始学的时候没有看概念直接扣题,书也是看的算法导论,导致我对这部分很害怕,所以决定系统的学习练习一下动态规划,想深入理解一下。结合了各路大佬以及一些书籍总结在此。(相看题的直接往下翻) 1.动态规划题怎么想思路? 动态规划不是某一种具体的算法,而是一种算法思想:若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。 既然是一种思想所以我们在解题的时候怎么能带入这种思想去想问题呢? 我们需要了解一下几个概念: 1.

cmd12138的博客 334

【R语言-生存分析之观察生存率计算】

全人群肿瘤登记资料常用的统计分析指标包括发病率、死亡率、现患率以及生存率等,其中肿瘤生存率是评估肿瘤治疗效果和肿瘤负担的必要指标,其计算涉及肿瘤患者的发病、 死亡和随访三个方面的资料, 数据整理和计算过程均较为复杂, 如何及时、 准确地计算肿瘤生存率, 并使其可以在不同地区、 不同人群、不同时期间被客观公正地比较和评价,仍然是统计学家们一直在研究的主题。

weixin_46579654的博客 5441

【动态规划-斐波那契类型】1.爬楼梯

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

weixin_52071901的博客 301

数字摄影与摄像中的图像信号处理器(ISP):流程与经典算法详解

图像信号处理器(Image Signal Processor, ISP)是现代数字成像系统(如智能手机、数码相机、网络摄像头等)中的核心组件,扮演着将图像传感器(如CMOS或CCD)捕获的原始光电信号转换为高质量、可供观看或进一步处理的数字图像的关键角色。在数字摄影和摄像的整个链路中,光线首先通过镜头(Lens)聚焦到图像传感器上,传感器将光信号转换为模拟电信号,随后经过模数转换(A/D转换)变为原始的数字图像信号。

qq_44682523的博客 3729

新代永久解锁西门子smart S7-200PLC 上传程序步骤

西门子 SMART S7-200 PLC 程序上传步骤 打开编程软件 或左下角依次打开 程序 所有程序 Siemens Automation Simatic STEP 7-MicroWIN SMART V2.4 STEP 7-MicroWIN SMART 技术交流 plcjiesuo1 2. 确认plc电源端以及输入电压; 3.用网线连接plc与电脑技术交流 plcjiesuo1 4.plc通电; 5.打开编程软件,双击通讯 6.按照...

m0_60773720的博客 2万+

【leetcode动态规划基础day1】70爬楼梯 509斐波那契数列

已经刷过了,要冲刺所以暂时不二刷。

qq_41592994的博客 373

auto.js梦幻西游游戏脚本,梦幻西游脚本开发思路

本篇文章给大家谈谈梦幻西游脚本用什么语言写,以及auto.js梦幻西游游戏脚本,希望对各位有所帮助,不要忘了收藏本站喔。

npy199331的博客 1940

leetcode 动态规划爬楼梯问题1

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

zhang245754954的博客 450

从DBC到ARXML:用RTA-CAR7实现车载通信协议栈自动化生成全流程

本文详细介绍了如何利用ETAS RTA-CAR7工具链,特别是ISOLAR-A和RTA-BSW ConfGen,实现从车载通信DBC文件到AUTOSAR ARXML系统描述文件,再到基础软件(BSW)协议栈代码的自动化生成全流程。该流程通过深度配置、信号路由、PDU复用及规则定制,大幅提升开发效率与一致性,是应对现代汽车电子复杂网络开发的关键实践。

brandy的博客 221

深入解析高通SA8775芯片:性能、架构与研发创新趋势

SA8775芯片凭借其强大的CPU、GPU和AI加速能力,能够应对现代智能系统中的复杂计算任务。它不仅适合高性能计算、深度学习应用,也在汽车、智能设备等领域有广泛的应用前景。无论是在自动驾驶系统中,还是在车载信息娱乐和高级嵌入式系统中,SA8775都展现了其出色的计算能力和能效平衡,是现代智能系统的重要硬件基础。SA8775芯片作为高通的高性能处理平台,具有出色的计算和AI加速能力,但也存在一些值得关注的地方。

weixin_43199439的博客 9348

【动态规划-1】 70. 爬楼梯(动态规划系列开篇)

动态规划简单入门题

Smileyan's blog 1万+

外骨骼机器人(五):步态分析之正常步态

研究病理步态之前,需要了解正常步态,作为判断标准。但是需要记住两个问题:1.“正常”因人而异,性别、年龄、身体情况都需要考虑在内,因此,需要对不同的个体选择合适的正常标准;2.即使病人的步态与正常步态有某种不同,这也不能说明这是不可取的,也不能说明应该把它变成“正常”步态。许多步态异常是对病人的一些问题的一种补偿,尽管异常,但它们仍然是有用的。步态周期的定义是连续为两次发生重复行走事件之间的时间间隔。尽管可以选择任何事件来定义步态周期,但通常使用一只脚接触地面的瞬间(“初始接触”)是方便的。

行者无疆的博客 1997

算法-动态规划1 斐波那契数及其优化- 爬楼梯

509. 斐波那契数 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1 此题可以使用递归方法求解;递归公式已经给出。 class Solution: def fib(self, n: int) -> int: if(n<2): return

Suzerk的博客 526

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

爬楼梯(1) 动态规划 DP 入门练习题

思路:到达某一层的方法数等于到达上一层的方法数加上到达上上层的方法数. 即:dp[i]=(dp[i-1]+dp[i-2]) #include<stdio.h> int dp[1010]; int main(){ dp[1]=1; dp[2]=2; int n; scanf("%d",&n); for(int i=3;i<=n;i++){ dp[i]...

一粒大榴莲的博客 299

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【算法题】动态规划基础阶段之 前 n 个数字二进制中 1 的个数、爬楼梯的最少成本、翻转数位

动态规划(Dynamic Programming,简称 DP)是一种解决多阶段决策过程最优化问题的方法。它是一种将复杂问题分解成重叠子问题的策略,通过维护每个子问题的最优解来推导出问题的最优解。动态规划的主要思想是利用已求解的子问题的最优解来推导出更大问题的最优解,从而避免了重复计算。因此,动态规划通常采用自底向上的方式进行求解,先求解出小规模的问题,然后逐步推导出更大规模的问题,直到求解出整个问题的最优解。定义状态:将问题划分为若干个子问题,并定义状态表示子问题的解;

Lion_Long的博客 485

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

1.1动态规划问题之爬楼梯

题目主体 数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。 请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/min-cost-climbing-stairs 著作权归领扣网络所有。商业转载请

qq_45629150的博客 349

算法基础——动态规划(1)(爬楼梯)

自顶向下变自底向上:递归边界变为数组初始值;dfs函数状态转移方程变为f数组状态计算方程;递归改为循环。

flex_university的博客 618

动态规划爬楼梯(为什么到i级的方法=i-1级的方法+到i-2级的方法)

动态规划爬楼梯(为什么到i级的方法=到i-1级的方法+到i-2级的方法) 先附个原题        初学动态规划,“爬楼梯”是必不可少的,但是相信有好多人都不理解问什么可以直接把变为斐波那契数列进而用到i-1级的方法+到i-2级的方法来求得到第i级台阶的方法。        这是为什么呢?       &nb

baiqi123456的博客 2780

【leetcode】【初级算法】【动态规划1】爬楼梯

动态规划 斐波那契 爬楼梯

qq_43520842的博客 311

动态规划——爬楼梯1

这里的dp(n+1)的意思是。$空间复杂度:$O(3)$时间复杂度:$O(n)$空间复杂度:$O(n)$再次基础上怎么做优化呢?,进而使空间复杂度降为。时间复杂度:$O(n)

iris25145的博客 471

动态规划入门1 - 爬楼梯问题,从递归到动态规划的完美演绎

思路特点时间复杂度空间复杂度递归简单直观,但有重复计算O(2ⁿ)O(n)记忆化搜索缓存结果O(n)O(n)动态规划自底向上O(n)O(n)滚动变量最优O(n)O(1)很多人一开始会问:为什么不是 f[i] = f[i-1] + f[i-2] + 2 呢?其实f[i]记录的是「走法数」,不是「步数的和」。那最后一步(+1 或 +2)已经包含在走法里面了,不需要再额外加。所以这道题不仅是动态规划的入门题,更是理解「状态表示」和「状态转移」的完美练习。

m0_59624833的博客 452

【Day38】代码随想录之动态规划part1——动态规划理论基础、斐波那契数、爬楼梯

今天开始动态规划的章节,差不多最后一章了,加油!!!

格子格鸽的个人博客 702

【动态规划part1】斐波拉契数,爬楼梯,使用最小花费爬楼梯

动规五部曲

酷酷的小邪博客 142

Leetcode题解之动态规划(1)爬楼梯

题目:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/23/dynamic-programming/54/ 题目描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: ...

Esy_Hong 403

DP(动态规划)【1】数塔&爬楼梯

/刚开始也是被用例4搞蒙了,才发现台阶n也能坏,相当于没有办法上去,答案为0。寒假的荣耀,现在回头看着这幼稚的代码,递归居然不超时?//记得特判最后一级可能是坏的。

m0_68339197的博客 243
上一篇: 贪心----4.划分字母区间
下一篇: 动态规划----2.杨辉三角
码破苍穹ovo
博客等级 码龄2年 377粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值