码迷,mamicode.com
首页 > 其他好文 > 详细

跳台阶

时间:2017-08-04 20:31:31      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:跳台阶   log   turn   floor   logs   显示   ack   思路   step   

题目描述

一只青蛙一次可以跳上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;
 
    }

  

跳台阶

标签:跳台阶   log   turn   floor   logs   显示   ack   思路   step   

原文地址:http://www.cnblogs.com/dd2hm/p/7286834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!