【小熊笔记】动态规划相关

昨天看了一道Longest Palindrome Substring的题,书中提到了动态规划(Dynamic Programming, DP)。 想起之前旁听课就一知半解,以前刷题也没有好好刷,于是决定好好学习一下。目前学习的粗浅心得是,DP跟递归有一个共同的技巧就是,不要想太多。都是focus在当前状态,顶多往前往后推一层。


先看了知乎两个帖子:


第一个帖子说的很简洁,适合入门,其中有一段摘录在这里,总结了几种跟状态相关的算法的区别:

每个阶段只有一个状态->递推;
每个阶段的最优状态都是由上一个阶段的最优状态得到的->贪心;
每个阶段的最优状态是由之前所有阶段的状态的组合得到的->搜索;
每个阶段的最优状态可以从之前某个阶段的某个或某些状态直接得到而不管之前这个状态是如何得到的->动态规划。

之后看了这个帖子 http://www.hawstein.com/posts/dp-novice-to-advanced.html 是翻译了topcoder上面的一篇关于DP入门到高级的文章(https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/ ),例子解释的很清楚,比较容易上手。所举例子分别为硬币凑N元(初级),N*M格子从左上到右下一次拿最多苹果(中级),无向图N个节点自带权重拿M元找最优路径(中高级),和继续拿苹果不过左上右下,之后右下左上,之后再左上右下,一共三次,也是醉了~

今天开始看看coursera上面算法课关于DP的内容。

To be continued...



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值