算法实现之爬楼梯

leetcode爬楼梯算法 leetcode算法题爬楼梯,第一次提交,如有不足还请多多包涵! 立即下载

概述

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

注意:给定 n 是一个正整数。

解决方案

下这个问题如果没有思路,我们可以通过简单的归纳法在总结出规律

只有1个台阶的时候    总共有1种走法
只有2个台阶的时候    总共有2种走法
只有3个台阶的时候    总共有3种走法
只有4个台阶的时候    总共有5种走法
只有5个台阶的时候    总共有8种走法
......

可以看到规律了吗?有没有很像我们数学中学习的斐波那契数列,基本规律就是

f(1) = 1;
f(2) = 2;
f(n) = f(n-1) + f(n-2)  //(n>2)

这个规律很明显的就可以通过递归来实现

public int jumpFloor(int n) {
    if (n <= 0) {
          return -1;
    }
    if (n == 1 || n == 2) {
        return n;
    } else {
        return jumpFloor(n - 1) + jumpFloor(n - 2);
    }
}

但是要注意一点,这里的n值有可能非常巨大,超过了栈的深度,导致StackOverflowError错误,基于
迭代的实现方式:

public int jumpFloor(int n) {
    if (n <= 0) {
        return -1;
    }
    if (n == 1 || n == 2) {
        return n;
    } else {
        int one = 1;
        int two = 2;
        int result = 0;
        for (int i = 2; i < n; i++) {
            result = one + two;
            one = two;
            two = result;
        }
        return result;
    }
}
SAP-ABAP:SAP数据库视图(Database View)详解-创建 数据库视图是SAP中实现多表关联查询的基础工具,适合简单的跨表查询和权限控制场景。但其功能有限,对于复杂逻辑或高性能需求,建议结合CDS视图或ABAP程序开发。通过合理设计,数据库视图可显著提升开发效率和系统可维护性。它存储在数据库中,但本身不存储数据,仅通过查询动态生成结果。是一种基于物理数据库表的虚拟表,通过关联多个表(使用。 阅读详情

相关推荐

别再为GEE注册发愁了!用谷歌Cloud Project,5分钟搞定谷歌地球引擎账户(保姆级图文)

本文提供2024最新版谷歌地球引擎(GEE)账户注册的保姆级教程,通过谷歌Cloud Project快速完成注册,5分钟极速通关。详细解析注册前的准备、分步图解流程、常见误区及解决方案,帮助用户避开90%的注册陷阱,直达GEE核心功能区。

weixin_42557830的博客 200

算法:Climbing Stairs(爬楼梯) 6种解法

说明 算法:Climbing Stairs(爬楼梯) LeetCode地址:https://leetcode.com/problems/climbing-stairs/ 题目: You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 step...

AI架构师易筋 1万+

别再用Python卷了!用Matlab的Deep Learning Toolbox快速上手U-Net图像分割(附完整数据集处理代码)

本文介绍了如何使用Matlab的Deep Learning Toolbox快速上手U-Net图像分割,包括数据准备、网络构建、训练监控和模型应用等完整流程。Matlab的高度集成工具链和图形化界面为图像分割任务提供了更快捷、直观的解决方案,特别适合研究人员和工程师快速实现原型验证。

weixin_29927965的博客 381

爬楼梯问题——三种方法(精简版)

方法一:动态规划 思路和算法 我们用f(x)f(x)f(x)表示爬到第 x 级台阶的方案数,考虑最后一步可能跨了一级台阶,也可能跨了两级台阶,所以我们可以列出如下式子: f(x)=f(x−1)+f(x−2))f(x)=f(x−1)+f(x−2))f(x)=f(x−1)+f(x−2)) 它意味着爬到第 x 级台阶的方案数是爬到第 x−1 级台阶的方案数和爬到第 x−2级台阶的方案数的和。很好理解,因为每次只能爬 1 级或 22级,所以 f(x)只能从 f(x−1)和 f(x−2)转移过来,而这里要统计方案总数

littlea2011的博客 1万+

Innovus Function ECO实战:5步搞定数字后端设计中的网表修正(含Calibre LVS验证技巧)

本文提供了一份完整的Innovus Function ECO实战指南,详细解析了数字后端设计中网表修正的五步流程。从理解Function ECO概念、准备关键文件,到在Innovus中执行逻辑比对、自动布线及GUI检查,并重点攻克了ECO后Calibre LVS验证的难点与调试技巧,帮助工程师高效、精准地完成流片前的设计微调。

day7的博客 949

双硬盘下Ubuntu 16.04与Win10双系统的安装

之前写过一个双系统安装过程,今天再次整理的原因是想重点强调双硬盘的区别。标红的一定要注意看,那就是我自己一步一步踏出来的坑啊...   基础步骤就不再重复,重点讲区别,需要看详细步骤的童鞋(或者你只有一个硬盘)请看我上一篇博客https://blog.youkuaiyun.com/weixin_40308540/article/details/80157444   区别:双硬盘和单硬盘的区别是什么呢?...

不吃包子 1124

经典算法——爬楼梯(解法归纳)(学习笔记)

问题分析 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?是引用 当n=1时,只需爬一个台阶,就是一种解法。 当n=2时,可以走两次一层或者走一次2层。 当n=3时,此时你可能在第一层或者第二层,当在第一层时相当于你在第0层准备去往第二层,当在第二层时相当于你在第0层准备去往第1层。 以此类推。 1.递归调用 int climbStairs(int n) { if(n==1||n==2){ return n; }else{

Vriesianman的博客 2万+

HI3403烧录全流程:从ToolPlatform安装到eMMC配置避坑指南

本文详细介绍了海思HI3403芯片的完整烧录流程,涵盖从ToolPlatform工具安装、驱动配置到eMMC分区策略的实战指南。文章深入解析了BurnTool工具的使用方法、关键配置项,并提供了烧录过程中的常见问题排查与解决方案,旨在帮助开发者高效、稳定地完成HI3403嵌入式系统的部署。

weixin_29279101的博客 333

每日算法-7 爬楼梯

爬楼梯(类斐波那契数列)题型,这里记录总结4种解法: 1. 递归法 2. 动态规划法 3. 矩阵法 4. 通项公式法

Millionmile的博客 5002

手把手教你用Python处理MAHNOB-HCI多模态数据集(含脑电EEG/眼动/视频数据同步实战)

本文详细介绍了如何使用Python处理MAHNOB-HCI多模态数据集,涵盖脑电(EEG)、眼动追踪和视频数据的同步解析与对齐。通过MNE-Python、pandas和OpenCV等工具,实现从BDF、TSV到XML格式的高效处理,解决时间轴对齐难题,助力情感计算与人机交互研究。

weixin_30998797的博客 369

【打卡帖】7日玩转ESP32——(第4日) 串口的输入输出

【福利帖】7日玩转ESP32——(第4日) 串口的输入输出

1377

算法练习——爬楼梯 leetcode.70 python

学习参考视频:华为算法大佬耗时200小时录制:Leetcode刷题100道,足以吊打字节面试官!_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1eg411w7gn?p=5 题目描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 解题思路: 思路一:自上而下——递归 import time def climbStairs(n): if n == 1:

tangchujiang的博客 1024

【DRAM存储器二十六】DDR4介绍-DDR4 SDRAM的主要技术特性之CA Parity、CRC Write date

详述DDR4的CA奇偶检验和写数据CRC校验功能

highman110的博客 1297

java 爬楼梯算法实现

java 爬楼梯算法实现方法一:public class Run {public static void main(String[] args) { //startUp()传入楼梯数,因为测试,我输入了个5 System.out.println(startUp(5)); }public static int startUp(int n){ if(n ==3) return 4; if(n <3) r

移动互联网开发者 2321

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LeetCode 爬楼梯算法实现

假设你正在爬楼梯。需要n阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? **注意:**给定n是一个正整数。 其实这个问题,可以用递归和动态规划解决,下面分别是两种实现方式: C++代码: int stairs(int n){ if(n==1||n==0||n==2){ return n; } ...

CallAuxiliary Blog 451

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

爬楼梯算法介绍与实现

我这里只是基础的实现了一下爬楼梯算法,内在可能还存在问题,欢迎指正。

yangkeOK的博客 381

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

力扣高频算法php_基于Go和PHP语言实现爬楼梯算法的思路详解

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

weixin_39606361的博客 117

爬楼梯算法java实现

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

hxltech的专栏 363

python实现经典的爬楼梯算法(包含多种实现算法)

本文探讨了解决爬楼梯问题的五种算法实现,从台阶数n出发,每步可走1或2阶。回溯算法通过状态转移和剪枝实现;暴力递归直接分治求解但效率低;记忆优化搜索存储中间结果提升效率;基础动态规划自底向上填表;优化版动态规划只需维护两个变量。各方法逐步优化,时间复杂度从O(2^n)降至O(n)再到O(1),空间复杂度从O(n)降到O(1),展示了算法优化的典型思路。最终最优解采用斐波那契数列递推公式,在常数空间内解决问题。

ShuiShenHuoLe的博客 331

【算法】爬楼梯之PHP实现

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

allen的博客 1714

手撕算法---爬楼梯,我用递归实现,让我伤心了

周一打卡leetcode爬楼梯这道算法题,我思考良久,决定使用递归实现,调试完没问题呀! 刚提交就给我报超出时间限制。。。不讲武德,欺负小姑凉 果不其然,递归代码虽然简洁高效,但是,也有很多弊端。比如,堆栈溢出、重复计算、函数调用耗时多、空间复杂度高等问题。 leetcode 70.爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例1: 输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 + 1

weixin_43933456的博客 769

PHP算法实现leecode 70. 爬楼梯

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

qq_34399191的博客 297

java 爬楼梯算法_动态规划-爬楼梯问题java实现

最近开始看算法导论,研究了一下动态规划,下面就开始直入主题开始记录近期看的第一个知识点动态规划。提起动态规划就不得不提几个动态规划的金典问题爬楼梯、国王金矿、背包问题。今天就仔细分析一下爬楼梯问题。列子 问:有一个高度为10级台阶的楼梯,从下往上走,每一次向上跨一个台阶只能是一个台阶或者两个台阶,要求用程序求出来一共有多少种算法?思考:如果每次都跨一个台阶 则为 1+1+1+1+1+1+1+1+1...

weixin_30649293的博客 1954

经典递归算法题:爬楼梯(Java实现)

关于java实现爬楼梯

qq_46354557的博客 1096

【LeetCode-面试算法经典-Java实现】【073-Climbing Stairs(爬楼梯)】

【070-Climbing Stairs(爬楼梯)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  You are climbing a stair case. It takes n steps to reach to the top.   Each time you can either climb 1 or 2 steps. In how many distinct

https://github.com/Wang-Jun-Chao 5414

梯 php,基于Go和PHP语言实现爬楼梯算法的思路详解

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

weixin_29327977的博客 257
上一篇: Java并发编程之线程间的通信方式
下一篇: 算法实现之由N×N个小方格组成的正方形中包含有多少个正方形
handy周
handy周 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄14年 507粉丝 240原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值