一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
java版本:
public class Solution {public  static void main(String[] args){long startTime=System.currentTimeMillis();System.out.println("第4项的结果是:"+JumpFloorII(4));long endTime=System.currentTimeMillis();System.out.println("程序执行的时间:"+(endTime-startTime)+"ms");}/*递归*/public static int JumpFloorII(int target){if(target==1){return 1;}else{return 2*JumpFloorII(target-1);}}/*左移*//*public static int JumpFloorII(int target){int a=1;return a<<(target-1);}*/}

js版本:

function jumpFloorII(number)
{if(number==1){return number;}else{return 2*jumpFloorII(number-1);      }// write code here
}

总结:用递归的思路

第一步可以跳1阶,跳2阶.......可以跳n阶,有n种跳法。

第二步剩余(n-1)个台阶,f(n-1)种跳法。

第三步剩余(n-2)个台阶,f(n-2)种跳法。

所以

f(n)=f(n-1)+f(n-2)+.........f(1)

f(n-1)=f(n-2)+f(n-3)+.........f(1)

两式相减得到发f(n)=2*f(n-1)。

左移思路:

每一项的结果都是上一项的2倍,所以左移1位。

转载于:https://www.cnblogs.com/yyfyl/p/9409360.html

剑指offer 09变态跳台阶相关推荐

  1. 剑指Offer #09 变态跳台阶(数列推导)

    题目来源:牛客网-剑指Offer专题 题目地址:变态跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 题目解析 这道题有 ...

  2. 剑指offer九:变态跳台阶

    一.题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 二.解题思路 可以延续上一题的思路,逆向思维来考虑这个问题.要想跳到第n级 ...

  3. 剑指offer:变态跳台阶

    题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 解题思路: 和之前跳台阶问题相比,这道题就是将跳台阶的类型增加到了n.实际上 ...

  4. 《剑指offer》变态跳台阶

    题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析:由上一篇跳台阶知道f(n)=f(n-1)+f(n-2)种,现在可以跳n阶,则 ...

  5. 《剑指Offer》 变态跳台阶

    题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 思路: 这个其实是一道动态规划问题,d[1]=1,d[i]=d[i-1]+d ...

  6. 牛客网-《剑指offer》-变态跳台阶

    C++ 1 class Solution { 2 public: 3 int jumpFloorII(int n) { 4 return 1<<--n; 5 } 6 }; 推导: 关于本题 ...

  7. 剑指offer之变态跳台阶

    问题描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 求解思路 该题目肯定不能用递归求解和组合路径的方式.结合前一个题目的斐 ...

  8. 【剑指offer】变态跳台阶

    时间限制:1秒 空间限制:32768K 热度指数:255284 算法知识视频讲解 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法 ...

  9. 《LeetCode力扣练习》剑指 Offer 10- II. 青蛙跳台阶问题 Java

    <LeetCode力扣练习>剑指 Offer 10- II. 青蛙跳台阶问题 Java 一.资源 题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总 ...

最新文章

  1. Kafka- Spark消费Kafka
  2. 商业模式新生代_业务分析基础 - 商业模式新生代01篇
  3. rss 订阅实现-iOS版
  4. 继承redis spring_Spring 极速集成注解 Redis 实践
  5. Yii2性能优化之:缓存依赖
  6. 2017.05.12_SAP特殊功能
  7. 驱动重构SDN/NFV奠定未来网络基石
  8. python设置tk退出_Tkinter退出按钮
  9. java分形树_java画分形树实例
  10. ubuntu12.04完美安装QQ2012、QQMusic、Foxmail等
  11. WEB安全——文件上传
  12. 自己不优秀,认识谁都没用
  13. unity3d内存分析工具memory profiler
  14. 十万个seo_2020年将抛弃10个SEO神话
  15. 数据结构:弗洛伊德算法(最短路径)图文详解
  16. 【证明】对称矩阵特征方程k重根恰有k个线性无关的特征向量
  17. 屏幕刷新机制小结(九)
  18. 如何进行接口测试(一篇学会)
  19. depot_tools download CPID client for windows 设置代理
  20. markdown之mermaid

热门文章

  1. keil c语言循环嵌套,keil软件中C语言嵌套汇编
  2. matlab的数据类型ppt,MATLAB数据类型
  3. php自动获取节气对应的年月日_php 根据时间获取二十四节气,返回json
  4. AcWing 893. 集合-Nim游戏(SG函数)
  5. c语言字符串汇编,C语言调用汇编实现字符串对换
  6. 卸载MySql详细步骤
  7. [linux]redhat7.6 安装telnet
  8. 复合索引失效的几种情况
  9. vmware虚拟机中常见的3种网络模式
  10. Xcode证书路径和缓存清理路径