题目描述:
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
题目链接:LeetCode-70-爬楼梯
解题思路:注释中有详解文章来源:https://www.toymoban.com/news/detail-709375.html
代码实现:文章来源地址https://www.toymoban.com/news/detail-709375.html
class Solution {
public int climbStairs(int n) {
// 动规五部曲
// 1. dp[i]: 走到第 i 阶有dp[i]种方法
// 2. 递归公式:dp[i]=dp[i-1]+dp[i-2] 走到第3阶需要依赖第1个台阶走1步,第2个台阶走1步,和斐波那契数列一样
// 3. 初始化:dp[0]=0; dp[1]=1 ; dp[2]=2
// 4. 从前向后
if (n==1){
return 1;
}
if (n==2){
return 2;
}
// 初始化
int[] dp = new int[n+1];
dp[0]=1;
dp[1]=1;
dp[2]=2;
for (int i = 3; i <=n ; i++) {
dp[i] = dp[i-1] + dp[i-2];
}
return dp[dp.length-1];
}
}
到了这里,关于LeetCode-70-爬楼梯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!