9、详解子序列问题

你好,我是卢誉声。 我们曾在上一课中提到,有两类重要的动态规划问题需要掌握,其中一个是子数组问题,另一个是子序列问题。今天,我们将深入讲解动态规划中的另一个经典问题,即子序列问题。 相较于子数组问题而言,子序列问题要更复杂一些,这是由子序列的特性决定...

动态规划面试宝典

10、常见的动态规划面试题串烧

你好,我是卢誉声。 在前面的课程中,我们使用动态规划解题模板(套路),解决了多种类型的动态规划算法问题。这其中包括背包问题、子数组问题和子序列问题等,它们绝大多数都属于求最优解(最大值和最小值)类型的问题。 除此之外,我们还需要掌握另外两大类型的动归...

动态规划面试宝典

11、攻破最长递增子序列问题

你好,我是卢誉声。 还记得我们在上个模块中讲解的子数组和子序列问题吗?相较于较为复杂的子序列问题,它的答案不一定连续;我们还讲解了子数组问题,这类问题的答案是连续的。因此,这两者之间最大的区别,其实就在于答案是否连续。 随着时间的推移,面试官们也往往...

动态规划面试宝典

12、攻破最大子数组问题

你好,我是卢誉声。 在“动态规划的套路”模块和上一课中,我们已经讨论了最典型的简单子数组问题,这其中包括: 回文子串个数; 最大子数组之和; 最长连续递增序列。 但是,在实际的技术面试环节,如果涉及到动态规划的子数组问题,那么面试官往往会根据经典...

动态规划面试宝典

13、关键:最优子结构与状态依赖

你好,我是卢誉声。 还记得我们曾经讨论过的吗?动态规划是运筹学上的一种最优化方法,常出现在数学、管理科学、计算机科学、经济学和生物信息学中,特别是在算法问题上应用广泛。当我们求解一个复杂问题时,会考虑把原问题分解为相对简单的子问题,再进行求解。 从这...

动态规划面试宝典

14、刷题指南,熟能生巧

你好,我是卢誉声。 自从给出了动态规划的解题模板后,我们就一直沿着其既定的套路在处理各式各样的动归问题。这其实印证了我们在专栏开头所说的一句话:动态规划问题简直就是模板、套路届的典范。 学到今天,其实我们已经对动态规划进行了较为全面的经验式总结,也对...

动态规划面试宝典

15、课程回顾与总结(上)

你好,我是卢誉声。 当你看到这里的时候,说明你已基本学习完了我们的整个专栏。在经过一系列的课程之后,你应该已经对最难技术面试问题——动态规划,有了较为全面的认识,并且知道该如何去解决一些经典的问题和这些问题的变种。 话说回来,无论你是按部就班学习完整...

动态规划面试宝典

16、课程回顾与总结(下)

你好,我是卢誉声。今天我们来继续课程总结,重点回顾几类经典的动态规划问题,并尝试使用我们的解题框架去解决它们。这几类问题我们前面都详细讲过,再带你巩固一遍。 经典的动态规划问题动态规划的问题主要分为三类: 求最优解(最大值和最小值):从一系列方案中...

动态规划面试宝典

17、买卖股票

你好,我是卢誉声。 上一课我们介绍了动态规划面试问题中求方案总数和求可行性这两大类问题的通用解法,解题模版如下: 根据特征判断是否用动态规划来解; 确定初始化状态和状态参数; 确定状态存储数组(即备忘录); 写出关键的状态转移方程; 编写代码进行求...

动态规划面试宝典

18、结束语:在我家的后院养长颈鹿

你好,我是卢誉声。 时光流逝,专栏到这里真的就要结束了。就像我在开课时曾说的,动态规划是一种解决问题的高级技巧,这不仅体现在它那高深莫测的命名上,还体现在解决实际的算法问题上。我想这趟学习之旅可能有些“烧脑”,那么作为专栏的最后一课,我们就聊一聊轻松...

动态规划面试宝典
12