文章目录
题目介绍
题解
思路分析:
- 确定dp数组以及下标的含义:dp[i]: 爬到第i层楼梯,有dp[i]种方法
- 确定递推公式:从dp[i]的定义可以看出,dp[i] 可以有两个方向推出来。首先是dp[i - 1],上i-1层楼梯,有dp[i - 1]种方法,那么再一步跳一个台阶不就是dp[i]了么。还有就是dp[i - 2],上i-2层楼梯,有dp[i - 2]种方法,那么再一步跳两个台阶不就是dp[i]了么。所以dp[i] = dp[i - 1] + dp[i - 2]。
- dp数组初始化:dp[1] = 1,dp[2] = 2
- 确定遍历顺序:从递推公式dp[i] = dp[i - 1] + dp[i - 2];中可以看出,遍历顺序一定是从前向后遍历的。
- 举例推导dp数组:从上图也可以看出来
代码实现:
n是大于等于1的
classSolution{publicintclimbStairs(int n){int[] dp =newint[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];}}
本文转载自: https://blog.csdn.net/qq_51352130/article/details/143193632
版权归原作者 liuyang-neu 所有, 如有侵权,请联系我们删除。
版权归原作者 liuyang-neu 所有, 如有侵权,请联系我们删除。