您现在的位置是:首页 > 正文

剑指Offer(8)——跳台阶+变态跳台阶

2024-04-01 04:50:07阅读 2

题目描述

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

/**
要到达第n个台阶,第一次跳跃可以跳1个台阶或者两个台阶,如果第一次跳一个台阶,
则后面的n-1个台阶有f(n-1)中跳法,如果第一次跳两个台阶,
则后面的N-2个台阶有f(n-2)种跳法。则总共的跳法就是f(n)=f(n-1)+ f(n-2):
*/
public class Solution {
    public int JumpFloor(int target) {
    	if(target <= 2)
    	{
    		return target;
    	}else
    	{
    		return JumpFloor(target-1) + JumpFloor(target-2);
    	}
    }
}

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

相似的思路,第一次可以跳1-n个,一次对应f(n-1)到f(0)个跳法:则f(n)=f(n-1)+f(n-2)+f(n-3)+.....+f(0);

而f(n-1)=f(n-2)+f(n-3)+.....+f(0);所以f(n)=2*f(n-1);

public class Solution {
    public int JumpFloorII(int target) {
        if(target == 0)
    	{
    		return 1;
    	}
    	if(target==1 || target==2)
    	{
    		return target;
    	}else
    	{
    		return 2*JumpFloorII(target-1);
    	}
    }
}

 

网站文章

  • MyBatis框架搭建快速入门

    MyBatis框架搭建快速入门

    MyBatis是一款优秀的开发,用于简化JDBC开发使开发人员只专注于SQL语句,而无需关注JDBC的API执行细节。

    2024-04-01 04:49:29
  • [NODE之18]Server

    /**http.Server 类 * Created by liyanq on 17/4/1. *//*express中没有对server类进行扩展,这点还比较好~~ * express框架中,app.listen是获得server的主要方法(可能是唯一的~),相当于http.createSever * 继承:server:Server->events.EventEmitter *

    2024-04-01 04:49:22
  • mongodb时间戳转换成格式化时间戳 热门推荐

    db.pay_order.find({&quot;id&quot;:&quot;5332336532&quot;},{&quot;tradeNo&quot;:true,&quot;status&quo...

    2024-04-01 04:49:13
  • Hive中删除表数据的几种方式

    在内部表中 仅删除表中数据,保留表结构 方法一 truncate table 表名;(truncate用于删除所有的行,这个行为在hive元存储删除数据是不可逆的) truncate 不能删除外部表!...

    2024-04-01 04:49:08
  • 操作系统存储管理习题

    1.主存与辅存间频繁的页面置换现象被称为:系统抖动 2.把进程地址空间中使用的逻辑地址变成内存中物理地址的过程称为:重定位 3.在可变分区存储管理中,最佳适应分配算法要求对空闲区表项按尺寸从小到大进行...

    2024-04-01 04:48:27
  • Linux系统编程:进程信号的保存和阻塞

    Linux系统编程:进程信号的保存和阻塞

    本文介绍了信号的保存和阻塞的相关概念和操作方法

    2024-04-01 04:48:19
  • xss攻击

    xss攻击

    之前介绍过csrf攻击,那个是通过编写恶意页面来通过跨域请求来调用用户的api现在介绍的是xss攻击,这种攻击和csrf不同的是,恶意脚本是注入到了用户要访问页面的本身,而不是一个恶意页面xss攻击按攻击方式可以分为2类:通过url和通过数据库1.非持久性(一般通过url)举个栗子:正常发送消息:http://www.test.com/message.php?se...

    2024-04-01 04:48:12
  • 谷歌翻译可用地址

    谷歌翻译可用地址

    谷歌翻译可用地址

    2024-04-01 04:47:32
  • RabbitMQ实现延迟消息

    RabbitMQ实现延迟消息

    本文主要讲解mall整合RabbitMQ实现延迟消息的过程,以发送延迟消息取消超时订单为例。

    2024-04-01 04:47:24
  • CentOS7查看开放端口命令及开放端口号

    CentOS7查看开放端口命令及开放端口号

    2024-04-01 04:47:17