前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >美团一道经典面试算法题解法

美团一道经典面试算法题解法

作者头像
小颜同学
发布2023-08-21 14:06:15
2050
发布2023-08-21 14:06:15
举报
文章被收录于专栏:原创笔记

这是美团一道经典面试算法题,在大三课上老师留给的一道课后练习,那么我们现在用Java来分析它的解法,此问题为斐波拉契数列(跳楼梯问题)

【问题描述】

一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。总共有多少种跳法?

【初步思路】

对于这一道算法题,我们首先可以做一个简单的分析:

当台阶为1级时,可以得知总共跳法为1种; 1

当台阶为2级时,可以得知总共跳法为2种; 1 1、2

当台阶为3级时,可以得知总共跳法为3种; 1 1 1、1 2、2 1

当台阶为4级时,可以得知总共跳法为4种; 1 1 1 1、1 1 2、1 2 1、2 2

但是当台阶来到5级时,它一共可以得到16种

由此可见我们可以使用递归推导出一个公式:f(1)=1;f(2)=1;f(n)=f(n-1)+f(n-2);

【代码演示】

代码语言:javascript
复制
import java.util.Scanner;

public class Demo{
    
    public static int JumpFloor(int target) {
        if(target<1) return 0;
        else if (target==1) return 1;
        else return 2*JumpFloor(target-1);
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个正整数");
        int target = sc.nextInt();
        System.out.println("得到的总种数为:"+JumpFloor(target));
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档