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

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

12、攻破最大子数组问题

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

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

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

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

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

9、详解子序列问题

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