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

    题目描述

    一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
    class Solution {
    public:
        int jumpFloor(int number) {
            if(number==1)	return 1;
            else if(number==2)	return 2;
            return jumpFloor(number-1)+jumpFloor(number-2);
        }
    };
    

      

    JAVA版本的另一种思路:

      这道题如果用递归的话提交会显示:
     
        运行超时:您的程序未能在规定时间内运行结束,请检查是否循环有错或算法复杂度过大。
     
        于是考虑用迭代解决:
     
        public int JumpFloor(int target) {
     
        if(target == 1 || target == 2) {
     
        return target;
     
        }
     
        // 第一阶和第二阶考虑过了,初始当前台阶为第三阶,向后迭代
     
        // 思路:当前台阶的跳法总数=当前台阶后退一阶的台阶的跳法总数+当前台阶后退二阶的台阶的跳法总数
     
        int jumpSum = 0;// 当前台阶的跳法总数
     
        int jumpSumBackStep1 = 2;// 当前台阶后退一阶的台阶的跳法总数(初始值当前台阶是第3阶)
     
        int jumpSumBackStep2 = 1;// 当前台阶后退二阶的台阶的跳法总数(初始值当前台阶是第3阶)
     
         
     
        for(int i = 3; i <= target; i++) {
     
        jumpSum= jumpSumBackStep1 + jumpSumBackStep2;
     
        jumpSumBackStep2 = jumpSumBackStep1;// 后退一阶在下一次迭代变为后退两阶
     
        jumpSumBackStep1 = jumpSum;                   // 当前台阶在下一次迭代变为后退一阶
     
        }
     
        return jumpSum;
     
        }
    

      

    拥抱明天! 不给自己做枷锁去限制自己。 别让时代的悲哀,成为你人生的悲哀。
  • 相关阅读:
    [bzoj4025]二分图
    [hdu4010]: Query on The Trees
    [bzoj3514]: Codechef MARCH14 GERALD07加强版
    [hdu3943]K-th Nya Number
    [hdu5632][BC#73 1002]Rikka with Array
    在Eclipse中使用建立使用Gradle做依赖管理的Spring Boot工程
    Spring Boot 添加Shiro支持
    常用Linux命令
    HTML5之API
    JavaScript的客户端存储
  • 原文地址:https://www.cnblogs.com/dd2hm/p/7286834.html
Copyright © 2011-2022 走看看