《剑指offer》——跳台阶

来源:互联网 发布:长歌门捏脸数据 编辑:程序博客网 时间:2024/05/01 03:58

T:

题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

constraints:

时间限制:1秒空间限制:32768K

本题有两种解决策略:
1、首先能发现的是一个斐波那契的递推公式,也就是f(n) = f(n-1) + f(n-2),因此很容易想到用递归去做,但是这种方式,抽象来看,是自上而下的递归,效率并不高,原因在于其重复计算严重;
2、第二,将递归反其道而行之,采用自下而上的方式(既可以说是递归形式的另一种表达,也可以说是动态规划的简单应用),类似于盖楼房的方式:

递归方式:

    /**     * 递归方式解决,其实是一个菲波那切数列,自上而下的方式用递归实现     * @param target     * @return     */    public int JumpFloor(int target) {        // 两个终止条件        if (target == 1) {            return 1;        } else if (target == 2) {            return 2;        } else {            return JumpFloor(target-1) + JumpFloor(target - 2);        }    }

非递归方式:

    /**     * 用动态规划的方式解决,自下而上的方式,避免重复计算的问题     * @param target     * @return     */    public int JumpStairs(int target) {        int count = 0;        if (target == 1 || target == 2) {            return target;        }        int i = 2;        int preCount1 = 1;        int preCount2 = 2;        while (i < target) {            count = preCount1 + preCount2;            preCount1 = preCount2;            preCount2 = count;            i ++;        }        return count;    }
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 运动后呕吐应该怎么办 运动后吐了怎么办 剧烈运动后难受怎么办 泡澡后全身无力怎么办 运动后头晕是怎么办 颈椎运动后头晕怎么办 跑步之后浑身疼怎么办 运动后头疼恶心怎么办 减肥减的头晕怎么办 剧烈运动后眩晕怎么办 剧烈运动后头昏怎么办 锻炼完头晕恶心怎么办 没休息好头疼怎么办 人的体力不好怎么办 反胃怎么办 吃什么好 怀孕恶心想吐怎么办 nba篮球大师破产怎么办 记忆力差反应迟钝怎么办 脑子笨记性不好怎么办 产后脑子不好使怎么办 老人脑子不好使怎么办 脑子不好使怎么办搞笑 脑子不好使了怎么办 最近脑子不好使怎么办 感觉自己好笨没脑子怎么办 脑子浑浊不清晰怎么办 30岁体力下降怎么办 皮肤差毛孔粗大怎么办 最近身体素质越来越差怎么办 身体素质差容易感冒怎么办 易疲惫犯困体质怎么办 成年狗体力不行怎么办 累了体力不支怎么办 新兵连成绩不合格怎么办 征兵体检血压高怎么办 魔域手游幻兽亲密度过低怎么办 移动账号被锁定怎么办 魔域手游账号被冻结怎么办 魔域手游没用的装备怎么办 5173账号三年找回怎么办 电脑的任务栏不见了怎么办