主要观点总结
小宇向闪客请教关于动态规划的问题,闪客通过举例子的方式帮助他理解动态规划的基本概念和方法。通过解决一个楼梯走法的问题,引出动态规划的三要素:最优子结构、状态转移方程和边界。接着,闪客又给出了一个背包问题,帮助小宇进一步理解动态规划的应用。最后,闪客鼓励小宇尝试自己实现动态规划的代码。
关键观点总结
关键观点1: 动态规划基本概念
动态规划是一种求解问题的思想,通过将问题分解为若干个子问题,并且子问题的解可以组合成原问题的解。通过利用子问题的解,可以避免重复计算,提高解题效率。
关键观点2: 动态规划三要素
动态规划的三要素包括:最优子结构、状态转移方程和边界。最优子结构指的是原问题的最优解可以由子问题的最优解组合而成;状态转移方程描述了如何从子问题的解得到原问题的解;边界是状态转移方程的初始条件。
关键观点3: 楼梯走法问题示例
通过解决一个楼梯走法的问题,展示了如何应用动态规划的思想和方法来求解。通过定义状态、状态转移方程和边界,将问题简化为一个递推问题,降低了问题的复杂度。
关键观点4: 背包问题示例
通过另一个背包问题的示例,展示了如何应用动态规划来求解最大价值问题。通过定义状态和状态转移方程,将问题转化为一个表格填写的问题,使得问题更加直观和易于解决。
关键观点5: 动态规划的代码实现
虽然动态规划的过程看起来清晰,但代码实现起来还是有难度的。需要具备一定的编程能力和算法基础,才能够将动态规划的思想转化为实际的代码。
文章预览
小宇: 闪客,我最近在研究动态规划,但感觉就是想不明白,你能不能给我讲讲呀? 闪客:没问题,这个我擅长,你先说说提到动态规划,你最先想到的是什么? 小宇:就什么子问题呀、状态转移方程呀乱七八糟的,哎呀不行不行,我一想到这些脑子又嗡嗡响了。 闪客:你先别急,你先把所有的名词都抛在脑后,听我讲。 小宇:好滴,你说吧。 闪客:小宇我问你,从 1 一直加到 100 等于多少? 小宇:5050 啊 闪客:你这,怎么不按套路出牌呀,你应该说不知道。 小宇:人家高斯早就算出来了,我还装不知道,这也太假了吧。 全剧终... 1 闪客:好吧,那我再给你出一个题。 小宇:行,你说吧,这回我肯定说不知道。 闪客:一个楼梯有 10 级台阶,你从下往上走,每跨一步只能向上迈 1 级或者 2 级台阶,请问一共有多少种走法? 小宇:额,这我真
………………………………