跟learnjiawa一起每天一道算法编程题,既可以增强对常用API的熟悉能力,也能增强自己的编程能力和解决问题的能力。算法和数据结构,是基础中的基础,更是笔试的重中之重。

  • 不积硅步,无以至千里;
  • 不积小流,无以成江海。

题目描述

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

我的想法

  1. 本题是上一题的升级版,青蛙的跳的方式不再局限于2种,而是n种,依然将n级台阶的跳法总数记为f(n)。
  2. 既然青蛙有n种跳的方式,可以将问题转换一下:除了最后一个台阶青蛙必须选择到达,其他台阶青蛙都可以选择去或者不去那一阶台阶。
  3. 比如,台阶数为1,青蛙必须选择到达,跳法只有1种。台阶数为2,第一阶台阶青蛙可以选择去或者不去,有2种选择,第二结是最后一阶,必须去,跳法为2 * 1。台阶数为3,第一阶台阶可已选择去或者不去,第二个台阶可以选择去或者不去,第三个台阶必须去,跳法有2 * 2 * 1种。
  4. 依次类推,跳法总数实际上是这么一个数列,1,2 * 1,2 * 2 * 1,2 * 2 * 2 * 1…
  5. 总结起来,f(n) = f(n-1) * 2, n > 1

解题方法1

代码测试

测试代码控制台输出:

总结

题目主要考察递归和循环的相关知识点,找到规律迅速解题。

参考文献

[1]程杰. 大话数据结构. 北京:清华大学出版社, 2011.

更多

对我的文章感兴趣,点个关注是对我最大的支持,持续更新中……
关注微信公众号LearnJava,发现更多精彩。

一只青蛙跳向三个台阶_Java版剑指offer编程题第9题--变态跳台阶相关推荐

  1. 编程 跳台阶_Java版剑指offer编程题第8题--跳台阶

    跟learnjiawa一起每天一道算法编程题,既可以增强对常用API的熟悉能力,也能增强自己的编程能力和解决问题的能力.算法和数据结构,是基础中的基础,更是笔试的重中之重. 不积硅步,无以至千里: 不 ...

  2. 【剑指offer - C++/Java】9、变态跳台阶

    题目链接:变态跳台阶 文章目录 1 题目描述 2 题目分析 3 代码 3.1 动态规划算法 3.11 Java代码 3.12 C++代码 3.2 递归算法 3.21 Java代码 3.22 C++代码 ...

  3. [剑指Offer]斐波那契数列、跳台阶、兔子数量问题(递归、非递归)(Java)

    剑指Offer题目 斐波那契数列 题目描述 [剑指Offer 7]大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). [剑指Offer 8]一只青蛙 ...

  4. 三天刷完《剑指OFFER编程题》--Java版本实现(第三天)

    正在更新中......... 剑指offer --Python版本的实现: 剑指offer(1/3)第一大部分 剑指offer(2/3)第二大部分 剑指offer(3/3)第三大部分 -------- ...

  5. 青蛙跳台阶问题——《剑指offer》

    问题描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008, ...

  6. python剑指offer跳台阶_【剑指offer】跳台阶I和II(Javapython)

    关于本题,前提是n个台阶会有一次n阶的跳法.分析如下: f(1) = 1 f(2) = f(2-1) + f(2-2) //f(2-2) 表示2阶一次跳2阶的次数. f(3) = f(3-1) + f ...

  7. 【三种解法实现】剑指 Offer 03. 数组中重复的数字

    立志用最少的代码做最高效的表达 题目链接-->传送门 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数 ...

  8. [剑指offer]面试题第[50]题[JAVA][第一个只出现一次的字符][哈希表][HashMap]

    [问题描述][简单] 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. s 只包含小写字母.示例:s = "abaccdeff" 返回 "b&quo ...

  9. 《剑指offer》第五十题(字符串中第一个只出现一次的字符)

    // 面试题50(一):字符串中第一个只出现一次的字符 // 题目:在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",则输出 // 'b'. #include & ...

最新文章

  1. MIT最新报告:完全无人驾驶仍需10年,马斯克:特斯拉已经实现
  2. [置顶] ros的navigation之———gmapping应用详解(in ros)
  3. oracle ora 14452,ORA-14452的出现原因解析及解决方法
  4. c语言图形时钟编程,C语言图形时钟课程设计实验报告.doc
  5. 北电PBX资料_D 14 外 線 設 定
  6. 《梦断代码》阅读笔记Ⅱ
  7. Eclipse字符集设置方式
  8. 万字梳理,带你拿下 Java 面试题!
  9. CORS 跨域 实现思路及相关解决方案
  10. (8)数据分析-卡方检验
  11. 次坐标从0开始_全站仪使用方法及坐标计算,讲解得真仔细!建议收藏!
  12. 查询计算机物理地址指令,怎么查询mac地址命令_如何查mac地址
  13. 计算机硬件个人总结,计算机硬件课程设计个人总结
  14. Gartner:新兴技术成熟度曲线2018(中文—历年)
  15. (转) Occlusion Culling(遮挡剔除)
  16. JSD-2204-SpringBoot+MyBatis-Day12
  17. 什么时候要抛出异常? !
  18. MySQL数据库迁移详细步骤
  19. 车载以太网会是传统总线的末路吗?
  20. 想对大一大二学生说一些心里话

热门文章

  1. C++ 设计模式 —— 策略模式(Strategy)
  2. 数论及Python实践
  3. Python Tricks —— 计算 1+1/2+1/4+...=2
  4. 怎么得到16位校检和-c语言,16位CRC校验C语言算法.pdf
  5. net安装 0x80096004 无法验证证书的签名_如何购买iOS签名证书
  6. python爬取小视频-40行代码教你利用Python网络爬虫批量抓取小视频
  7. python是什么软件-Python 是什么软件?
  8. python常用代码大全-python基础,python基础代码大全
  9. python真的是吹过了-别再无脑吹了,python和matleb有什么不同你知道吗?
  10. python学习网站-python学习网站整理