动态规划(持续更新)

2020校招真的是。。。10道笔试题起码有一大半都是动态规划。
为了offer,在此整理一下所遇到的dp实例问题的集合。

首先,什么样的问题可以称为动态规划问题:
1.拥有最优的子结构
A.一个大问题的最优解可以通过求解其子问题,递归地去求得子问题的最优解来求得。
2.存在重叠的子问题的情况
A.子问题存在重叠,即相同的子问题的情况,可以记忆该子问题的解,以便后续使用。
一个典型的例子就是斐波那契数列的递归方式求解中f(n)=f(n-1)+f(n-2),存在多个子问题(通项)的情况。用动态规划的话就能存储子问题的解,而不必重新对子问题再去递归求解。
B.需要减少时间复杂度。
斐波那契数列的递归方式时间复杂度是O(2^n),动态规划的话,使用数组存储每个子问题对应索引位置的f(n),先前计算的只需要按索引查找O(1),一次循环O(n)下来就能求解。
C.子问题不重叠。
大问题划分成子问题求解。
比如归并排序。
3.没有后效性
原问题的最优解一定会用到子问题的最优解,即原问题的子问题不可能不是最优解。

动态规划问题的两个解决思路:
·Top-down方式
记忆化递归。
·Bottom-up
通常理解意义的DP。

全部评论

相关推荐

预计下个星期就能开奖吧,哪位老哥来给个准信
华孝子爱信等:对接人上周说的是这周
点赞 评论 收藏
分享
最近和朋友聊天,她说了句让我震惊的话:"我发现我连周末点外卖都开始'最优解'了,一定要赶在高峰期前下单,不然就觉得自己亏了。"这不就是典型的"班味入侵"吗?工作思维已经渗透到生活的方方面面。
小型域名服务器:啊?我一直都这样啊?我还以为是我爱贪小便宜呢?每次去实验室都得接一杯免费的开水回去,出门都得规划一下最短路径,在宿舍就吃南边的食堂,在实验室就吃北边的食堂,快递只有顺路的时候才取。
点赞 评论 收藏
分享
头像
10-15 22:27
已编辑
门头沟学院 C++
罗格镇的小镇做题家:我投了hr打电话来说学历太低了不符合要求,建议投荣耀,结果荣耀也投了一定水花没有,非本211硕
投递华为等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务