动态规划入门 ( - 力扣509斐波那契数)

听代码随想录-动态规划基础总结

常见基础题型

基础题目(斐波那契、爬楼梯...)

背包问题

打家劫舍

股票问题

子序列问题(编辑距离问题也是)

学习误区

...就是下面这部分理解难

动归五部曲

复制代码
dp数组

递推公式

dp数组如何初始化

遍历顺序

打印数组

所有动态规划就按照这个想就对了


以一个简单入门题:斐波那契数为例:509. 斐波那契数 - 力扣(LeetCode)

第一步:确定dpi含义(以及下标i含义)

下标i:次序

dpi:第i个斐波那契数

第二步:递推公式

dpi = dpi - 1 + dpi - 2

第三步:dp数组如何初始化

这道题给的很清晰了:dp0 = 1 、dp1 = 1

第四步:遍历顺序

这道题是从前到后遍历

但不代表所有题型都是

有的题目是从前到后遍历

有的题目是从后往前遍历

有的题目是两层for循环遍历

有的题目的两层for循环遍历先后顺序是有说法的

第五步:打印dp数组

(起到DeBug作用)看与我们想象中的数组是否一样

连答案都不用看,按上面思路都写出来了:(除了两个边界漏了)

java 复制代码
class Solution {
    public int fib(int n) {
        //1.
        int[] dp = new int[n];

        if(n == 0){return 0;}
        if(n == 1 || n == 2){return 1;}

        //3.
        dp[0] = 1;
        dp[1] = 1;

        //4.
        for(int i = 2 ; i < n ; i ++){
            //2.
            dp[i] = dp[i - 1] + dp[i - 2];
        }

        //5.
        return dp[n-1];
    }
}
相关推荐
吴长建先生重名了1 小时前
GitHub Actions部署报表系统踩坑记:幂等性与限
算法
贝壳6902 小时前
一个2026年2月才上传的库,凭什么敢碰2009年就有人写烂的题目
算法
贝壳6902 小时前
同一道三亿位选型题,三个AI给了我三个答案,我把它们拉进同一台机器复跑
算法
青少儿编程课堂5 小时前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会图形化考级:校园大富翁经营闯关解析
c++·python·算法·bfs·信息学竞赛
在所不辞兄5 小时前
为什么在新能源汽车电驱与热管理开发中,AI驱动的数字孪生和数据驱动仿真正在部分替代对物理台架与实车标定的依赖?
人工智能·深度学习·神经网络·算法·机器学习
I_belong_to_jesus16 小时前
C++关于分支预测的优化1
开发语言·c++·算法
Code_Solitude1 天前
C语言动态内存 + 柔性数组 + 数组名退化
c语言·算法·柔性数组
上海潭龙东海科技有限公司1 天前
客运站管控之动态孪生技术方案(新增一屏管控模块
数据仓库·人工智能·算法·重构·动态规划