动态规划面试宝典
学好动态规划,面试晋升都不怕
卢誉声  Autodesk 首席工程师
专栏
已完结·共 23 讲
|
9634 人已学
|
收藏
榨菜真好吃
30岁面了好几次阿里巴巴都没过,但这并不意味着我应该结束程序员生涯,自己再多学点,学深点,我就是一个优秀的打工人������..大学动态规划挂科边缘飘过不以为然,真是验了书到用时方恨少.
作者回复:学习永远没有迟不迟的,懂得把决心转化成行动就行。
2020-11-05
早起不吃虫
“最重要的其实不是要有梦想,而是把握现实和当下,以梦想为基础,竭尽所能去改善现实。” -- 前面学的再多再好,感觉都不如这句话的价值!感谢老师!
作者回复:顶
2020-12-15
BBQ
感觉作者用心打造的课程,周末把这门课刷了一遍。其实之前也刷了不少的DP,但是最近的面试出了一道稍微变一下的凑硬币问题,就不知所措了。感觉动态规划还是没有学到位,经过周末的天,在作者的引导下,对DP又有了系统性的认识,感谢作者。
作者回复:谢谢,感谢你的肯定!对你有帮助就是我最开心的事情。
2021-03-07
樟树林
老师,关于背包问题哈,背包容量为2,物品个数为3的背包,按照你上述计算得出的结果是3,但实际结果应为6。这个问题,老师能解释一下吗?
作者回复:这个背包内可以容纳的物品只取决于背包的容量和物品的重量,示例数据里背包容量为2的情况下,最优解肯定是3,因为永远只能装下一个物品,这个是不是对问题的理解有什么偏差。
2021-01-20
小熊
第二讲暴力递归 要得到整体最优解需要找出所有符合的情况,选出其中一个最优组合,符合整体最优。 全部跑出结果再判断,这会浪费很多空间来存储结果组合 所以在递归过程中,进入最内层返回得到结果时舍弃不符合的,保留更符合的,直到退回递归的顶层,就可以得到唯一的结果。 递归的方法是为了保存之前的状态,回退时使用,这其实就是栈的数据结构,可以改为非递归的方式。 使用递归,失败了可以回退,这种回退找正确答案的思路就是回溯,每次都找到树型结构的底部就叫深度优先的思路。 这种全部结果都遍历出来,取最优解的做法是暴力递归,性能差难以调试,效率低,可读性差,可以使用剪枝优化。 贪心算法是动态规划的源头,但是他局限于求局部最优解,但是用到暴力递归里,就可以达到剪枝的效果。 第二种优化策略,重叠子问题,余额相同的时候搜索路径是完全一致。所以可以把大问题拆分为小问题,这就是备忘录和动态规划的基础。
作者回复:理解没有问题。
2021-01-20
子夜2104
之前对贪心算法的理解是:因为总是局部最优,所以不能用来解决实际问题。学完了这一节,明白了贪心算法的局限性及其应用场景。
作者回复:嗯嗯,你的理解是正确的。贪心算法的局限性体现在它在每一步计算中只考虑局部最优解,这导致了它的局限性。对于需要考虑整体最优的问题,我们需要别的方法。 后面的课程就会提到穷举、回溯以及动态规划。
2020-09-15
梅亮宏@创造力
老师说的很生动!用递归加局部最优的方法一定能得到正解。但是如果问题变得更加复杂的情况下,例如我们有1亿中硬币可以用,总币值为几万亿。可能还需要优化一下算法性能或者用分布式计算把性能提高? 这让我想到了ai中的reinforcement learning。个人认为有些偏全局优化?就如alphaGo,每一步棋都需要以整个棋局为出发点考虑。有点像老师这个算法里面的递归,即每尝试走一步的时候都会记录状态,用树状结构罗列所有可能性然后回溯。通过神经网络来的weight值估算是不是应该回溯。另外即使找到最优解了,还可以设置exploit更多最优的可能。纯个人理解,有点发散,希望老师指正!
作者回复:没错,寻找最优解的时候,本质上还是需要进行枚举(穷举),因此优化算法性能是最重要的第一步,如果使用了动态规划,就可以大幅压缩计算时间,在此基础上,如果性能仍不满意(即数据规模实在太巨大),那么则可以考虑使用工程化的方法,比如你提到的分布式计算来提高计算性能。 AI 中的强化学习,本质上它的目的是寻找全局最优解。但是,我们最终能找的只是一定范围内的局部最优解,使得这个局部最优解在一定条件下,最接近我们期望的全局最优解。这个发散点很好,算法发展到一定高度就会进入机器学习领域,无论如何,基本的算法思路其实没有本质差别。
2020-09-15
托尼斯威特
原来如此,用搜索解这个题,可以带上贪心的思路
作者回复:贪心算法只是在一定条件下,希望能加快搜索的速度。但是,往往在大多数情况下,都不满足这种条件。因此,贪心很难直接得到整体最优解。 贪心算法的本质决定了它能解决问题的范围和高度。如果不辅以别的工具函数或算法,它关注的是局部最优解。
2020-09-15
山茶花
最近刚好遇到一个动态规划问题,极客时间就出了这门课,希望学完能解答自己的疑惑
作者回复:欢迎进入动态规划世界,一起学习,进步。
2020-09-15
al-byte
处理动态规划类问题就像解一个puzzle
作者回复:事实上,动态规划是模板届的典范,解决它的方法是有规可循的。而且,我们能够提炼归纳出动态规划的题型,并根据其特点提供解题框架(模板,或者说套路)。 跟着课程学习,你就能获得这些工具和经验总结,所以动态规划也没有想象中那么难。期待着这门课能够让你掌握动归的要领,看到相关问题就有思路。
2020-09-15
讲师

卢誉声

Autodesk 首席工程师

卢誉声,Autodesk 首席工程师,主攻平台架构研发。 负责核心流数据平台的架构设计与研发工作,在分布式系统高可用性、性能优化、基于流的大规模图形 SDK 的研发方面有多年实战经验。同时,也拥有着丰富的面试和面试官经验。 常用 C/C++、JavaScript 开发,此...查看更多
编辑推荐
讲师的其他课程
现代 C++20 实战高手课
卢誉声
Autodesk 首席工程师

29讲 | 3793 人已学习

¥59¥99
看过的人还看了
数据结构与算法之美
王争
前 Google 工程师

81讲 | 283825 人已学习

¥68¥199
MySQL 实战 45 讲
林晓斌
网名丁奇,前腾讯云数据库负责人

49讲 | 224956 人已学习

¥68¥199
设计模式之美
王争
前 Google 工程师,《数据结构与算法之美》专栏作者

113讲 | 123483 人已学习

¥98¥299
左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家

119讲 | 181018 人已学习

¥98¥399
Redis 核心技术与实战
蒋德钧
中科院计算所副研究员

53讲 | 81764 人已学习

¥68¥199
从 0 开始学架构
李运华
网名“华仔”,前阿里资深技术专家(P9)

66讲 | 152643 人已学习

¥68¥199