剑指offer :跳台阶
这题之前刷leetcode也遇到过,感觉是跟斐波拉契差不多的题。
题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
解题思路:
这类题一般就是用递归思想,先考虑跳一级台阶情况,再是两级。发现由于跳台阶的选择只有1级和2级,所以其实跳n级台阶就是跳n-1级和n-2级的和。
本科做斐波拉契用递归时已经知道会超时,由于分别计算f(n-1)和f(n-2)实际是重复计算了,所以用数组去存每次的计算结果,直接调用就可以。
代码:
class Solution { public:int jumpFloor(int number) {vector<int> sum_jump;sum_jump.push_back(0);sum_jump.push_back(1);sum_jump.push_back(2);for(int i=3; i<=number; i++){sum_jump.push_back(sum_jump[i-1]+sum_jump[i-2]);}return sum_jump[number];} };
转载于:https://www.cnblogs.com/LJ-LJ/p/10585462.html
剑指offer :跳台阶相关推荐
- 剑指offer——跳台阶变态跳台阶矩形覆盖
剑指offer--跳台阶&&变态跳台阶&&矩形覆盖 1.跳台阶 哈哈哈,递归题,一遍过 class Solution { public:int jumpFloor(in ...
- [剑指offer] 跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 还是斐波那契: class Solution { public:int jumpFloor(int ...
- 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 跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 解决方案: 这个题目是菲波那切数列的变形:这儿使用递归. public class Solutio ...
- 剑指Offer——跳台阶
1.题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 2.代码实现(和斐波那契数列是一模一样的) 1 public in ...
- 剑指Offer_08_跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 解题思路 这是一个动态规划的题.对于n个台阶,可以是n-1个台阶跳一步得到,也可以是n-2步台阶跳 ...
- 剑指offer跳楼梯
//一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). //递归 class Solution1 {public:int jumpF ...
- 剑指offer-8 跳台阶
题目要求:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 解题思路 推导下公式 跳法次数为 1 2 3 5 8 ... f( ...
- [剑指Offer]斐波那契数列、跳台阶、兔子数量问题(递归、非递归)(Java)
剑指Offer题目 斐波那契数列 题目描述 [剑指Offer 7]大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). [剑指Offer 8]一只青蛙 ...
- 剑指offer:跳台阶 python 实现
题目 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 解题思路 草稿上想了想,这道题跟剑指offer: 斐波那契数列 ...
最新文章
- FM-2018-大熊猫的肠道菌群可能并没有特化出发酵纤维素的能力
- NPashaP的二分图源码部分
- springcloud 微服务 分布式 Activiti6 工作流 vue.js html 跨域 前后分离
- hudson部署过程
- 想和高手侃侃而谈C++引用?看这一篇就够了【C++引用】
- powerdesigner导出sql时自动生成注释
- HDU4405(概率DP求期望)
- 如何使用exclipse打开已有的文件夹
- 目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结(转)
- python from import什么意思_Python 引用From import介绍
- linux系统使用小端内存,linux进程内存管理
- 数学建模酶促反应matlab求解,数学建模——酶促反应.doc
- 【英语学习】【WOTD】chockablock 释义/词源/示例
- Ubuntu搜狗输入法乱码
- oracle修改用户密码
- linux系统下安装游戏,在Linux系统下安装GameHub来管理所有游戏
- 递增的整数序列链表的插入_leetcode673_go_最长递增子序列的个数
- Fences 2.1 - 高效实用的桌面图标栅栏分类管理软件神器 (桌面图标再多也不会乱)
- 2022年南京医院三基考试耳鼻咽喉科学精选题及答案
- Android 13 Beta 版发布,诸多亮点不容错过
热门文章
- Spring IOC源码笔记(二)
- weex 项目开发(五)自定义 过滤函数 和 混合 及 自定义 Header 组件
- 控制Arduino的利器-Windows Remote Arduino
- 采用Eclipse中间Maven构建Web项目错误(一)
- Silverlight 简介 Part.1(理解 Siverlight)
- netscreen MIP 问题
- 实践:VB创建Com组件 在Asp以及.Net中调用
- Summarize 2014 Look Ahead 2015
- LOJ2321「清华集训 2017」无限之环
- sqoop导出solr数据_用Sqoop把数据从HDFS导入到MYSQL