70. Climbing Stairs
class Solution {
public int climbStairs(int n) {
if (n == 1) {
return 1;
}
// 设dp[i]为到达第i级楼梯的方式数。要到达第i级楼梯由两种途径:
// 一种是在第i - 2级跨两步,另一种是在第i - 1级跨一步。
// dp[i] = dp[i - 2] + dp[i - 1]
int[] dp = new int[n + 1];
dp[0] = 0;
dp[1] = 1;
dp[2] = 2;
for (int i = 3; i <= n; i++) {
dp[i] = dp[i - 2] + dp[i - 1];
}
return dp[n];
}
}