描述
https://leetcode-cn.com/problems/climbing-stairs/
题解
解法一 动态规划
思路
动态规划要点:每次计算依赖前面的状态,找到初始状态则可逐步推
设 f(n) 为爬到N台阶需要的方法数
则 f(n) = f(n - 1) + f(n - 2)
f(1) = 1;f(2) = 2;
代码
class Solution {
public int climbStairs(int n) {
int now = 1, pre = 1;
for(int i = 2; i <= n; i++) {
// 当前台阶 = 前台阶 + 前前台阶
now += pre;
// 前台阶 = 当前台阶 - 前前台阶
pre = now - pre;
}
return now;
}
}