递归--爬楼梯

作者: 暮想sun | 来源:发表于2020-01-08 15:52 被阅读0次

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
思路:n阶第一步踏出的时候,可以爬1或者2阶,n = (n-1) + (n-2)的爬楼梯的和

 public static int climbStairs(int n) {
        int[] data = new int[n + 1];
        return climbStairs(data, n);
    }

    public static int climbStairs(int[] data, int n) {
        if (n == 0) {
            data[0] = 1;
            return data[n];
        }
        if (n == 1) {
            data[1] = 1;
            return data[n];
        }

        if (data[n] != 0) {
            return data[n - 1] + data[n - 2];
        }
        //第一步走一步,或者第一步走两步
        data[n] = climbStairs(data, n - 1) + climbStairs(data, n - 2);
        return data[n];
    }

相关文章

  • DP 递归 递归 + 缓存

    最近发现DP的本质就是递归 + 缓存占坑 后续补经典的例子 爬楼梯 最小编辑距离 ... naive 递归 递归 ...

  • 递归--爬楼梯

    假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢...

  • 菜,努力。

    今天中午做了爬楼梯,晚上做了重构字符串,爬楼梯我试着用递归写了一下,发现可以得出结果,但是时间复杂度太高...

  • 动态规划类

    1.定义问题2.找递归式3.初始化 一、 爬楼梯 描述假设你正在爬楼梯。需要 n 步你才能到达楼顶。每次你可以爬 ...

  • 递归算法之-爬楼梯

    一、爬楼梯算法递归实现:假设一个楼梯有N阶台阶,人每次最多跨M阶,求总共的爬楼梯的方案数例如:1-100的台阶,每...

  • 递归法——爬楼梯(简单)

    题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬...

  • 刷题记录(初级算法--动态规划+设计问题篇)

    [TOC] 爬楼梯 第一想法自然是递归,而且爬楼梯很明显是一个斐波拉切数列,所以就有了以下代码: 但是在输入为44...

  • 基础篇-递归

    今天同事在群里分享了一个关于递归解法的经典爬楼梯CASE,问题描述如下: 一个人爬楼梯,每次只能爬1个或2个台阶,...

  • 算法思想:递归 回溯 分治 动态规划 2019-04-22

    几种算法思想: 一、递归(保留往期第五天任务) 通过LeetCode上【70. 爬楼梯】学习中文路径:https:...

  • Leetcode-#70爬楼梯(递归)

    问题描述 你正在爬楼梯。需要 n 步你才能到达顶部。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方式可以爬...

网友评论

    本文标题:递归--爬楼梯

    本文链接:https://www.haomeiwen.com/subject/bijsactx.html