一只青蛙跳向三个台阶_Java版剑指offer编程题第9题--变态跳台阶
跟learnjiawa一起每天一道算法编程题,既可以增强对常用API的熟悉能力,也能增强自己的编程能力和解决问题的能力。算法和数据结构,是基础中的基础,更是笔试的重中之重。
- 不积硅步,无以至千里;
- 不积小流,无以成江海。
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
我的想法
- 本题是上一题的升级版,青蛙的跳的方式不再局限于2种,而是n种,依然将n级台阶的跳法总数记为f(n)。
- 既然青蛙有n种跳的方式,可以将问题转换一下:除了最后一个台阶青蛙必须选择到达,其他台阶青蛙都可以选择去或者不去那一阶台阶。
- 比如,台阶数为1,青蛙必须选择到达,跳法只有1种。台阶数为2,第一阶台阶青蛙可以选择去或者不去,有2种选择,第二结是最后一阶,必须去,跳法为2 * 1。台阶数为3,第一阶台阶可已选择去或者不去,第二个台阶可以选择去或者不去,第三个台阶必须去,跳法有2 * 2 * 1种。
- 依次类推,跳法总数实际上是这么一个数列,1,2 * 1,2 * 2 * 1,2 * 2 * 2 * 1…
- 总结起来,f(n) = f(n-1) * 2, n > 1。
解题方法1
代码测试
测试代码控制台输出:
总结
题目主要考察递归和循环的相关知识点,找到规律迅速解题。
参考文献
[1]程杰. 大话数据结构. 北京:清华大学出版社, 2011.
更多
对我的文章感兴趣,点个关注是对我最大的支持,持续更新中……
关注微信公众号LearnJava,发现更多精彩。
一只青蛙跳向三个台阶_Java版剑指offer编程题第9题--变态跳台阶相关推荐
- 编程 跳台阶_Java版剑指offer编程题第8题--跳台阶
跟learnjiawa一起每天一道算法编程题,既可以增强对常用API的熟悉能力,也能增强自己的编程能力和解决问题的能力.算法和数据结构,是基础中的基础,更是笔试的重中之重. 不积硅步,无以至千里: 不 ...
- 【剑指offer - C++/Java】9、变态跳台阶
题目链接:变态跳台阶 文章目录 1 题目描述 2 题目分析 3 代码 3.1 动态规划算法 3.11 Java代码 3.12 C++代码 3.2 递归算法 3.21 Java代码 3.22 C++代码 ...
- [剑指Offer]斐波那契数列、跳台阶、兔子数量问题(递归、非递归)(Java)
剑指Offer题目 斐波那契数列 题目描述 [剑指Offer 7]大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). [剑指Offer 8]一只青蛙 ...
- 三天刷完《剑指OFFER编程题》--Java版本实现(第三天)
正在更新中......... 剑指offer --Python版本的实现: 剑指offer(1/3)第一大部分 剑指offer(2/3)第二大部分 剑指offer(3/3)第三大部分 -------- ...
- 青蛙跳台阶问题——《剑指offer》
问题描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008, ...
- 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 ...
- 【三种解法实现】剑指 Offer 03. 数组中重复的数字
立志用最少的代码做最高效的表达 题目链接-->传送门 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数 ...
- [剑指offer]面试题第[50]题[JAVA][第一个只出现一次的字符][哈希表][HashMap]
[问题描述][简单] 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. s 只包含小写字母.示例:s = "abaccdeff" 返回 "b&quo ...
- 《剑指offer》第五十题(字符串中第一个只出现一次的字符)
// 面试题50(一):字符串中第一个只出现一次的字符 // 题目:在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",则输出 // 'b'. #include & ...
最新文章
- MIT最新报告:完全无人驾驶仍需10年,马斯克:特斯拉已经实现
- [置顶] ros的navigation之———gmapping应用详解(in ros)
- oracle ora 14452,ORA-14452的出现原因解析及解决方法
- c语言图形时钟编程,C语言图形时钟课程设计实验报告.doc
- 北电PBX资料_D 14 外 線 設 定
- 《梦断代码》阅读笔记Ⅱ
- Eclipse字符集设置方式
- 万字梳理,带你拿下 Java 面试题!
- CORS 跨域 实现思路及相关解决方案
- (8)数据分析-卡方检验
- 次坐标从0开始_全站仪使用方法及坐标计算,讲解得真仔细!建议收藏!
- 查询计算机物理地址指令,怎么查询mac地址命令_如何查mac地址
- 计算机硬件个人总结,计算机硬件课程设计个人总结
- Gartner:新兴技术成熟度曲线2018(中文—历年)
- (转) Occlusion Culling(遮挡剔除)
- JSD-2204-SpringBoot+MyBatis-Day12
- 什么时候要抛出异常? !
- MySQL数据库迁移详细步骤
- 车载以太网会是传统总线的末路吗?
- 想对大一大二学生说一些心里话
热门文章
- C++ 设计模式 —— 策略模式(Strategy)
- 数论及Python实践
- Python Tricks —— 计算 1+1/2+1/4+...=2
- 怎么得到16位校检和-c语言,16位CRC校验C语言算法.pdf
- net安装 0x80096004 无法验证证书的签名_如何购买iOS签名证书
- python爬取小视频-40行代码教你利用Python网络爬虫批量抓取小视频
- python是什么软件-Python 是什么软件?
- python常用代码大全-python基础,python基础代码大全
- python真的是吹过了-别再无脑吹了,python和matleb有什么不同你知道吗?
- python学习网站-python学习网站整理