美文网首页
70. 爬楼梯

70. 爬楼梯

作者: bangbang2 | 来源:发表于2020-07-09 14:59 被阅读0次
image.png

解题思路

基本思路是动态规划
dp数组来记录爬i+1阶楼梯所需要的方法,dp数组在动态规划时,往往记录结果
重点是确定状态转移方程
dp[i]=dp[i-1]+dp[i-2];
动态规划的状态转移方程,因为一次可以爬一个台阶或两个台阶,所以是前二者的和

代码

class Solution {
    public int climbStairs(int n) {
        int [] dp=new int[n];//dp数组来记录爬i+1阶楼梯所需要的方法,dp数组在动态规划时,往往记录结果
        if(n==1) dp[0]=1;//特殊情况处理一下
        if(n==2) dp[1]=2;
        for(int i=2;i<n;i++){
            dp[0]=1;
            dp[1]=2;
            dp[i]=dp[i-1]+dp[i-2];//动态规划的状态转移方程,因为一次可以爬一个台阶或两个台阶,所以是前二者的和

        }
        return dp[n-1];//返回数组的最后一个元素
    }
}

相关文章

网友评论

      本文标题:70. 爬楼梯

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