1.题目: (爬楼梯)
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。
2. 示例
3.解答步骤
思路都在注释上! 请大家自主阅读程序!
⭐ 本篇注意点: 为什么要用快指针当中循环终止条件
答: 因为假如不出现环状的情况,使用慢指针当中终止循环条件时,会出现快指针的空指针异常!
class Solution {
public int climbStairs(int n) {
// 通过分析题目
// 规律为 1 2 3 5 8 13
if(n<=1) {
return 1;
}
int[] dp = new int[n];
dp[0] = 1;
dp[1] = 2;
for(int i=2; i<n; i++) {
dp[i] = dp[i-1] + dp[i-2];
}
return dp[n-1];
}
}