09.变态跳台阶 Java
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路
0:0
1:(1)
2:(1,1)(2)
3:(1,1,1)(2,1)(1,2)(3)
4:(1,1,1,1)(2,1,1)(1,2,1)(3,1)(1,1,2)(1,3)(2,2)(4)
显然,除了0,其他都是2^(n-1);
OJ并未检查小于等于0的情况,所以也可将该界外判断去掉。
n级台阶,第一步有n种跳法:1,2,3,...,n
跳1级,剩下的有F(n-1)种。
跳2级,剩下的有F(n-2)种。
...
跳n级,剩下的有F(0)=1种。
所以F(n)=F(n-1)+F(n-2)+...+F(0)
因为F(n-1)=F(n-2)+F(n-3)+...+F(0)
所以F(n)=2*F(n-1)
代码
public class Solution {
public int JumpFloorII(int target) {
if(target <= 0){
return 0;
}
int temp=1;
while(target >=2){
temp *=2;
target--;
}
return temp;
}
}
public class Solution {
public int JumpFloorII(int target) {
if(target <= 0){
return 0;
}
return (int)Math.pow(2,target-1);
}
}
public class Solution {
public int JumpFloorII(int target) {
if(target <= 0){
return 0;
}
return 1 << (target -1);
}
}
public class Solution {
public int JumpFloorII(int target) {
if(target <= 0){
return 0;
}else if(target == 1){
return 1;
}
return 2*JumpFloorII(target-1);
}
}
09.变态跳台阶 Java的更多相关文章
- 剑指offer 09变态跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. java版本: public class Solution { public stati ...
- 剑指offer例题——跳台阶、变态跳台阶
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路: n<=0时,有0种跳法 n=1时,只有一种跳法 n=2时,有 ...
- [剑指OFFER] 斐波那契数列- 跳台阶 变态跳台阶 矩形覆盖
跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. class Solution { public: int jumpFloor(int number) ...
- 《剑指offer》— JavaScript(9)变态跳台阶
变态跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 实现代码 function jumpFloor(number) { ...
- 剑指Offer - 九度1389 - 变态跳台阶
剑指Offer - 九度1389 - 变态跳台阶2013-11-24 04:20 题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳 ...
- [剑指Offer]2.变态跳台阶
题目 一仅仅青蛙一次能够跳上1级台阶,也能够跳上2级--它也能够跳上n级. 求该青蛙跳上一个n级的台阶总共同拥有多少种跳法. 思路 用Fib(n)表示青蛙跳上n阶台阶的跳法数,设定Fib(0) = 1 ...
- 7、斐波那契数列、跳台阶、变态跳台阶、矩形覆盖------------>剑指offer系列
题目:斐波那契数列 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). f(n) = f(n-1) + f(n-2) 基本思路 这道题在剑指offe ...
- (原)剑指offer变态跳台阶
变态跳台阶 时间限制:1秒空间限制:32768K 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析一下明天是个斐波那契 ...
- [剑指offer] 8+9. 跳台阶+变态跳台阶 (递归 时间复杂度)
跳台阶是斐波那契数列的一个典型应用,其思路如下: # -*- coding:utf-8 -*- class Solution: def __init__(self): self.value=[0]*5 ...
随机推荐
- O055、Detach Volume 操作
参考https://www.cnblogs.com/CloudMan6/p/5636510.html 本节我们开始学习 Volume Detach 操作,就是将Volume从Instance上 ...
- git、github常用操作
1.将github项目拷贝到本地 $ git clone https://github.com/jim2500/miaosha_project.git 2.修改本地项目上传到github T470s@ ...
- 初识 vue------简单介绍
/** vue 作者:尤雨溪 类型:MVVM 准确的来说是MV框架 为什么要学习vue 1.传统的项目是通过操作dom元素来修 ...
- 自定义事件 Event 、CustomEvent的使用
通过Event和dispathEvents触发自定义事件 <span id="btn">获取</span> <script> var event ...
- ubuntu - 14.04,安装docker(源代码管理工具)
一,安装docker: 1,安装curl:在shell中执行:sudo apt-get install curl 2,shell中执行:curl -sSL https://get.daocloud.i ...
- 简单聊聊服务发现(redis, zk,etcd, consul)(转载)
服务发现并没有怎样的高深莫测,它的原理再简单不过.只是市面上太多文章将服务发现的难度妖魔化,读者被绕的云里雾里,顿觉自己智商低下不敢高攀. 服务提供者是什么,简单点说就是一个HTTP服务器,提供了AP ...
- AxMath_V2.5.0.0安装和激活
目录 1. 相关推荐 2. 按 3. AxMath 功能与特色 4. 软件介绍 4.1. 编辑与排版 4.2. 科学计算功能 4.3. 输出与发布 4.4. 运行环境 4.5. 破解说明 5. 安装步 ...
- ORA-01145: offline immediate disallowed unless media recovery enabled问题解决
ORA-01145: offline immediate disallowed unless media recovery enabled (随记,后续整理) 数据库只有在归档模式下才能够直接对数据文 ...
- D - A or...or B Problem
题意:给定A,B,问[A,B]里取任意个数按位或,结果有多少种. 思路:这题需要找出一个分界点,即找到最高位的B是1,A是0的位置x(最低位从0开始),那么对于所有OR的结果,x处要么是1要么是0,x ...
- 神奇的系统bug
这是报错的日志 Status bar could not find cached time string image. Rendering in-process