zoukankan      html  css  js  c++  java
  • 跳台阶

    题目描述

    一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
    第一种方法:采用递推的方式
     
    class Solution {
    public:
        int jumpFloor(int number) {
    
            //递推公式f[n] = f[n -1] + f[n - 2]
            int f[number];
            f[0] = 1;
            f[1] = 2;
    
            for (int i = 2; i < number; i++) {
                f[i] = f[i - 1] + f[i - 2];
            }
            return f[number - 1];
        }
    };

    第一种方法:采用递归的方式

     1 class Solution {
     2     //递归的方法
     3 public:
     4     int jumpFloor(int number) {
     5         if (number <= 0) {
     6             return -1;
     7         }
     8         if (number == 1) return 1;
     9         if (number == 2) return 2;
    10         return jumpFloor(number - 1) + jumpFloor(number - 2);
    11     }
    12 };

    两种方法的运行时间与空间对比:

    解决问题 提交时间 状态 运行时间 占用内存 使用语言
    跳台阶 2018-07-26 答案正确 463 ms 604K C++
    跳台阶 2018-07-26 答案正确 4 ms 480K C++

    采用递推的方法运行时间远低于递归的方法,占用内存也小于递归的方法!

  • 相关阅读:
    layoutSubviews总结
    Vue.js:循环语句
    Vue.js:条件与循环
    Vue.js:模版语法
    Vue.js:起步
    Vue.js-Runoob:目标结构
    Vue.js-Runoob:安装
    Runoob-Vue.js:教程
    Vue.js:template
    培训-Alypay-Cloud:蚂蚁金融云知识点
  • 原文地址:https://www.cnblogs.com/gousheng/p/9371827.html
Copyright © 2011-2022 走看看