14天阅读挑战赛
努力是为了不平庸~
算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!欢迎记录下你的那些努力时刻(算法学习知识点/算法题解/遇到的算法bug/等等),在分享的同时加深对于算法的理解,同时吸收他人的奇思妙想,一起见证技术er的成长~
动态规划DP
“动态规划”,概述】
动态规划 (dynamic programming) 与分治方法相似,都是通过组合子问题的解来求解原问题(在这里, "programming"指的是一种表格法)
动态规划应用于子问题重叠的情况,即不同的子问题具有公共的子子问题(子问题的求解是递归进行的,将其划分为更小的子子问题),动态规划算法对每个子子问题只求解一次,将其解保存在一个表格中,从而无需每次求解一个子子问题时都重新计算,避免了不必要的计算工作。
什么时候考虑用动态规划
什么时候考虑动态规划/可以用动态规划求解的问题的特征/】应用动态规划方法求解的最优化问题应该具备的两个要素:最优子结构和子问题重叠。需要在给定约束条件下优化某种指标、问题可分解为彼此独立且离散的子问题时,考虑用动态规划算法。若一个问题的最优解,其内部包含的所有子问题解也必须最优,则该问题呈现了“最优子结构”,具有此结构特征的问题可能会使用动态规划。
极客时间
动态规划问题一定具备以下三个特征
1.重叠子问题:在穷举的过程中(