剑指OFFER的跳台阶问题
2016-04-08 22:37
274 查看
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
(斐波那契数列的变形)
F(1)=1;F(2)=2;
F(n)=F(n-1)+F(n-2);
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法.
(这个解法记不太清楚了)
但是直接分析也可以解出来,n个台阶
F(n)=1+F(n-1)+F(n-2)+````+F(1);
1次跳n阶,最后一次跳1个,对应就是F(n-1),最后一次跳2个,对应就是F(n-2)·····
(斐波那契数列的变形)
F(1)=1;F(2)=2;
F(n)=F(n-1)+F(n-2);
class Solution { public: int jumpFloor(int number) { if(number<=0) return 0; if(number==1||number==2) return number; else return jumpFloor(number-1)+jumpFloor(number-2); } };
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法.
(这个解法记不太清楚了)
但是直接分析也可以解出来,n个台阶
F(n)=1+F(n-1)+F(n-2)+````+F(1);
1次跳n阶,最后一次跳1个,对应就是F(n-1),最后一次跳2个,对应就是F(n-2)·····
class Solution { public: int jumpFloorII(int number) { int* array1=new int[number]; array1[0]=1; array1[1]=2; for(int i=2;i<number;i++){ int j=0,temp=0; while(j<i){ temp+=array1[j++]; } array1[i]=temp+1; } return array1[number-1]; } };
相关文章推荐
- UVA_10422_Knights in FEN
- jQuery之empty、remove、detach
- 前端复制功能的若干 -- document.execCommand()
- 解决 jsp:include 引用文件时出现乱码的问题
- FILE、inode、fork和vfork
- css清除浮动
- 3-jQuery - AJAX get()
- Angular 2知识整理第一篇 Hello,world!
- 前端开发学习笔记04---JavaScript
- 下拉菜单
- CSS3 @keyframe动画的基本用法与常见错误用法
- javascript动态在<div>中加载内容
- 名企动态网站开发--jQuery实现flash动画效果
- javascript内置对象
- javascript打算看的书
- 【剑指offer】斐波那契数列
- 学习记录--javascript多态
- 用JS模拟购物车(jQuery实现)
- js第四节-数据类型以及类型的转化
- 剑指Offer——构建数组B[i]=A[0]*A[1]*....A[i-1]*A[i+1]*A[i+2]*...A[n-1],不能使用除法