由于每次只能迈1步或者两步台阶
拆解:
- 起始状态
- nums[0] = 1、nums[1] = 1
- 状态转移方程
- nums[i] = nums[i-1] + nums[i-2]
当然还可以优化:
public int climbStairs(int n) {
if(n == 0 || n == 1) {
return 1;
}
int prev = 1;
int cur = 1;
for (int i = 2; i <= n; i++) {
int tmp = cur;
cur = cur + prev;
prev = tmp;
}
return cur;
}