zoukankan      html  css  js  c++  java
  • Leetcode 070 爬楼梯 动态规划

    地址 https://leetcode-cn.com/problems/climbing-stairs/

    假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
    
    每次你可以爬 12 个台阶。你有多少种不同的方法可以爬到楼顶呢?
    
    注意:给定 n 是一个正整数。
    
    示例 1:
    
    输入: 2
    输出: 2
    解释: 有两种方法可以爬到楼顶。
    1.  1 阶 + 12.  2 阶
    示例 2:
    
    输入: 3
    输出: 3
    解释: 有三种方法可以爬到楼顶。
    1.  1 阶 + 1 阶 + 12.  1 阶 + 23.  2 阶 + 1

    解答

    这是动态规划入门题目

    当最终到达N阶台阶的时候  只可能是从N-1 或者N-2的台阶上一次走过来(N-2的台阶走一步到达N-1的台阶 然后再上来的走法 在N-1的走法数目中已经计算)

    N台阶的走法 = N-1的台阶走法 + N-2的台阶走法

    class Solution {
    public:
        int climbStairs(int n) {
            int dp[10010];
            dp[1] =1;
            dp[2] = 2;
            for(int i =3;i<=n;i++){
                dp[i] = dp[i-1]+dp[i-2];
            }
            
            return dp[n];
        }
    };
    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    [Violet]蒲公英
    CF535-Div3
    逛公园
    exgcd
    线段树套线段树
    Luogu P2730 魔板 Magic Squares
    fhqtreap
    AtCoder Beginner Contest 115
    关于这个博客
    智障错误盘点
  • 原文地址:https://www.cnblogs.com/itdef/p/13112254.html
Copyright © 2011-2022 走看看