爬楼梯(初级算法&动态规划)
声明: 题目均来自力扣,网址, 如有侵权,告知必删! 本题地址:
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]; } }