剑指offer第九题(变态跳台阶)
来源:互联网 发布:四川大学成教学院网络 编辑:程序博客网 时间:2024/06/07 11:57
题目:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路:
假设f(n)是n个台阶跳的次数。
f(1) = 1
f(2) 会有两个跳得方式,一次1阶或者2阶,这回归到了问题f(1),f(2) = f(2-1) + f(2-2)
f(3) 会有三种跳得方式,1阶、2阶、3阶,那么就是第一次跳出1阶后面剩下:f(3-1);第一次跳出2阶,剩下f(3-2);第一次3阶,那么剩下f(3-3).因此结论是
f(3) = f(3-1)+f(3-2)+f(3-3)f(n)时,会有n中跳的方式,1阶、2阶...n阶,得出结论:
f(n) = f(n-1)+f(n-2)+...+f(n-(n-1)) + f(n-n) => f(0) + f(1) + f(2) + f(3) + ... + f(n-1) == f(n) = 2*f(n-1)
java代码:public class Solution {
public int JumpFloorII(int target) {
if(target<=0){
return 0;
}
else if(target==1){
return 1;
}
else{
return (int)Math.pow(2,target-1);
}
}
}
python代码:
# -*- coding:utf-8 -*-
class Solution:
def jumpFloorII(self, number):
# write code here
if number<=0:
return 0
elif number==1:
return 1
else:
return pow(2,number-1)
- 剑指offer第九题(变态跳台阶)
- 剑指offer第九题【变态跳台阶】c++实现
- 变态跳台阶(剑指Offer)
- 剑指offer(九)变态跳台阶
- 剑指offer--(9) 变态跳台阶
- 变态跳台阶(剑指Offer 第 9 题)
- 【剑指offer】变态跳台阶
- 【剑指offer】变态跳台阶
- 剑指offer :变态跳台阶
- 剑指Offer-变态跳台阶
- 《剑指offer》变态跳台阶
- 【剑指Offer】变态跳台阶
- 剑指offer--变态跳台阶
- 剑指offer-变态跳台阶
- 剑指offer 变态跳台阶
- 剑指offer--变态跳台阶
- 《剑指offer》变态跳台阶
- 剑指offer - 变态跳台阶
- gcc编译时的输出如何带上颜色
- TensorFlow框架(1)之Computational Graph详解
- 网站优化 14条--雅虎十四条优化原则
- zoj1889
- Elasticsearch
- 剑指offer第九题(变态跳台阶)
- Binder客户端和驱动端通信流程实例分析----以acquireWakeLock()函数为例 (二)
- spring常见面试题分析
- 三维数组习题
- [NOIP2012]洛谷[P1080]国王游戏 贪心+高精
- JavaWeb(3)_navicat批量插入数据
- JAVA IO详解(转)
- window10下安装TensorFlow
- Xilinx SDK中指定变量的物理位置