[剑指offer] 跳台阶

简介: 本文首发于我的个人博客:尾尾部落题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

本文首发于我的个人博客:尾尾部落

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

解题思路

按照题意,
1 级 ---- 1 种
2 级 ---- 2 种
3 级 ---- 3 种
4 级 ---- 5 种
5 级 ---- 8 种
我们可以得到一种规律,如果要跳 6 级,可以从 5 级跳一步到 6 级,5 级的方案中有多少种就有多少种跳法跳到 6 级;还可以从 4 级跳两步到 6 级,同理,4 级的方案有多少种就有多少种方法从 4 级跳到 6 级,所以可以得到公式f(n) = f(n-1) + f(n-2),再结合 1 级和 2 级的情况,可以得以如下的规律:
f(n) = 1, (n=1)
f(n) = 2, (n=2)
f(n) = f(n-1)+f(n-2) ,(n>2,n为整数)
这就是斐波那契数列的变形,因此可以用递归来实现。

参考代码

public class Solution {
    public int JumpFloor(int target) {
        if(target<=0)
            return 0;
        else if(target == 1|| target == 2)
            return target;
        else
            return JumpFloor(target-1)+JumpFloor(target-2);
    }
}
目录
相关文章
|
7月前
|
JSON 前端开发 测试技术
企业微信协议接口:TLV 打包与解包实现
企业微信协议接口采用TLV(Tag-Length-Value)格式以提升传输效率。本文详解其帧头结构、TLV打包解包实现,并对比Protobuf,展示在高并发下更低的解析开销与内存占用,是构建高性能网关及解析企业微信iPad协议的关键基础。(238字)
252 0
|
7月前
|
运维 监控 Linux
守护你的服务器(Linux进程监控与实时告警入门指南)
本文介绍Linux进程监控的重要性及基础实现方法,通过Shell脚本检测进程状态并记录告警日志,结合Cron定时任务实现自动化监控,适合运维新手入门。
|
存储 人工智能 自然语言处理
ACE++:输入想法就能完成图像创作和编辑!阿里通义推出新版自然语言驱动的图像生成与编辑工具
ACE++ 是阿里巴巴通义实验室推出的升级版图像生成与编辑工具,支持多种任务,如高质量人物肖像生成、主题一致性保持和局部图像编辑。
1112 8
|
自然语言处理 算法 PyTorch
从零开始构建大语言模型(MEAP)(3)
从零开始构建大语言模型(MEAP)
596 1
|
存储 容灾 开发工具
springboot2.4.5使用pagehelper分页插件
springboot2.4.5使用pagehelper分页插件
536 0
|
Web App开发 弹性计算
ECS 按量付费VPC实例停机不收费FAQ
停机不收费支持范围 目前只支持VPC类型的按量付费的ECS实例,您需要在控制台签署接受停机不收费协议可以开启。开启之后下次Stop机器自动进入停机不收费模式。不影响您的经典网络和包年包月预付费ECS实例的行为。
10057 127
|
SQL NoSQL Java
JAVA自定义规则生成唯一ID
本文以类型和订单时间为例,SQL方案和Redis方案
1486 0
JAVA自定义规则生成唯一ID
|
存储 NoSQL 关系型数据库
阿里云图数据库GDB简介和购买流程
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。 图数据库GDB非常适合社交网络、欺诈检测、推荐引擎、知识图谱、网络/IT运营这类高度互连数据集的场景。例如,在一个典型的社交网络中,常常会存在“谁认识谁,上过什么学校,常住什么地方,喜欢什么餐馆”之类的查询,传统关系型数据库对于超过3张表关联的查询十分低效难以胜任,但图数据库可轻松应对社交网络的各种复杂存储和查询场景