class Solution {
public int climbStairs(int n) {
if(n < 4) return n;
int[] dp = new int[n + 1];
dp[0] = 0;
dp[1] = 1;
dp[2] = 2;
for(int i = 3; i <= n;i++){
for(int j = 1; j <= 2;j++){
dp[i] += dp[i - j];
}
}
return dp[n];
}
}
用完全背包做吧,可以取1或者取2,就把不取1和不取2的情况加上自己原本可以实现的情况累加在一起就是所有组合,因为是排列问题,所以物品在里。
该博客介绍了如何使用动态规划解决爬楼梯问题,通过完全背包的思想,考虑每次可以爬1步或2步,逐步计算出所有可能的组合。代码示例展示了如何实现这一算法,并解释了其工作原理。
893

被折叠的 条评论
为什么被折叠?



