0
点赞
收藏
分享

微信扫一扫

LeetCode 509. 斐波那契数 70. 爬楼梯

爱情锦囊 2022-03-11 阅读 36

动态规划步骤:

1.确定dp数组以及下标的含义
2.确定递推公式
3.dp数组如何初始化
4.确定遍历顺序
5.举例推导dp数组

在这里插入图片描述
原题链接

 class Solution {
    public int fib(int n) {
        if(n < 2) return n;
        int a = 0, b = 1, c = 0;
        for(int i = 1; i < n; i++){
            c = a + b;
            a = b;
            b = c;
        }
        return c;
    }
}

在这里插入图片描述
原题链接

1.确定dp数组以及下标的含义
dp[i]: 爬到第i层楼梯,有dp[i]种方法

2.确定递推公式
dp[i] = dp[i - 1] + dp[i - 2]

3.dp数组如何初始化
dp[1] = 1,dp[2] = 2

4.确定遍历顺序
从递推公式dp[i] = dp[i - 1] + dp[i - 2];中可以看出,遍历顺序一定是从前向后遍历的

5.举例推导dp数组

class Solution {
    public int climbStairs(int n) {
        if(n <= 2) return n;
        int a = 1, b = 2, sum = 0;
        for(int i = 3; i <= n; i++){
            sum = a + b;
            a = b; 
            b = sum;
        }
        return sum;
    }
}
举报

相关推荐

509. 斐波那契数

509.斐波那契数

0 条评论