爬楼梯(初级算法&动态规划)

声明: 题目均来自力扣,网址, 如有侵权,告知必删! 本题地址:

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];
    }
}

4. 提交结果(提交用时和内存消耗)

经验分享 程序员 微信小程序 职场和发展