我是靠谱客的博主 痴情煎饼,最近开发中收集的这篇文章主要介绍跳台阶.NC68,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

输入

1

返回值

1

题解

动态规划:第n次状态取决与n-1次和n-2次的总和,即a[n] = a[n-1] + a[n-2]; 因为每次只能跳一步或者两步. 这里为了简单我设res[0]=1.

public class Solution {
    public int JumpFloor(int target) {
        int[] res = new int[target + 1];
        res[0] = 1;
        res[1] = 1;
        for (int i = 2; i <= target; i++) {
            res[i] = res[i - 1] + res[i - 2];
        }
        return res[target];
    }
}

更明确的写法:

public class Solution {
    public int JumpFloor(int target) {
        if (target <= 2) {
            return target;
        }
        int[] res = new int[target + 1];
        res[1] = 1;
        res[2] = 2;
        for (int i = 3; i <= target; i++) {
            res[i] = res[i - 1] + res[i - 2];
        }
        return res[target];
    }
}

递归: 用时更长

public class Solution {
    public int JumpFloor(int target) {
        if (target <= 2) {
            return target;
        }
        return JumpFloor(target - 1) + JumpFloor(target - 2);
    }
}

最后

以上就是痴情煎饼为你收集整理的跳台阶.NC68的全部内容,希望文章能够帮你解决跳台阶.NC68所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部