美文网首页
动态规划算法—爬楼梯

动态规划算法—爬楼梯

作者: 尼小摩 | 来源:发表于2018-07-05 10:38 被阅读58次

假设你正在爬楼梯。需要 n 步你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

示例 1:

输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1.  1 步 + 1 步
2.  2 步

示例 2:

输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1.  1 步 + 1 步 + 1 步
2.  1 步 + 2 步
3.  2 步 + 1 步

思路

动态规划。维护一个一维数组dp[n+1],dp[0]为n=0时的情况,dp[ i ]为到达第i阶台阶总共的方法。例,当n=4时,如下图,很快就可以推出状态转移方程为:dp[i]=dp[i-1]+dp[i-2] (i >=2)。


代码

class Solution {
    public int climbStairs(int n) {
        if (n <= 2) {
            return n;
        }
        
        int[] dp = new int[n + 1];
        dp[0] = 1;
        dp[1] = 1;
        for (int i = 2; i <= n; i++) {
            dp[i] = dp[i - 1] + dp[i - 2];
        }
        
        return dp[n];
    }
}

相关文章

  • 动态规划算法—爬楼梯

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

  • 动态规划法

    爬楼梯问题 在介绍动态规划算法之前,我们不妨先看一下小例子。相信学计算机的在读大学期间都遇到过这么一道题:青蛙一次...

  • 【python算法书】动态规划算法,爬楼梯问题?

    题目:窝窝家住在二楼,每次回家都需要经过一个有10层台阶的楼梯。窝窝每次可以选择一步走一级台阶或者一步都两级台阶。...

  • 动态规划算法

    动态规划算法 最长上升子序列

  • 维特比算法

    维特比(Viterbi)算法是一种动态规划算法,在处理隐马尔可夫(HMM)最优路径问题时经常被使用. 动态规划算法...

  • 爬楼梯可以瘦大腿吗?

    爬楼梯可以瘦大腿妈?爬楼梯在生活中很常见,爬楼梯其实也是一种运动,很多女性想通过爬楼梯来瘦大腿,那么,爬楼梯可以瘦...

  • 最短路径解决方法

    Floyd算法;Dijkstra算法;Bellman-Ford算法;动态规划算法

  • 最不像运动的运动,减脂效果比跑步还好!

    最好的运动项目就藏在生活中!比如:爬楼梯! 有朋友问,每天上班回家都要爬楼梯,那么,爬楼梯能减脂吗?我说,爬楼梯当...

  • 背包问题

    介绍 学习动态规划算法的经典例题。动态规划算法一般有3个特征1、最优化原理:最优解所包含的子问题的解也是最优的。2...

  • 动态规划算法(01背包问题)

    一. 动态规划算法介绍: 动态规划算法和分治算法类似,也是将待求解问题分成若干个小问题一步步求解,不同的是,每一个...

网友评论

      本文标题:动态规划算法—爬楼梯

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