
动态规划
public static int climbStairs(int n) {
if (n==1) return 1;
int[] nums=new int[n+1];
nums[0]=0;nums[1]=1;nums[2]=2;
for (int i = 3; i <= n; i++) {
nums[i]=nums[i-1]+nums[i-2];
}
return nums[n];
}

学以致用
- 确定状态:最后一步上去还是两步上去:
最后n-1步:f(n-1)最后n-2步:f(n-2) - 状态方程:
f(n)=f(n-1)+f(n-2) - 初始条件和边界条件:
f(1)=1;f(2)=2 - 计算顺序:
for (int i = 3; i <= n; i++) { }
本文介绍了一个经典的动态规划问题——爬楼梯问题,并详细解释了如何通过动态规划的方法求解该问题。文章中给出了状态定义、状态转移方程、初始条件及计算顺序等关键步骤。

4876

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



