提升:从枚举、进阶,到动态规划(Dynamic Programming)

枚举,一般容易想到,但不是高效的算法,怎么办?动态规划(DP)通常可以拿来做优化。

本次 Chat 我们 Talk:如何通过3个难度依次增大的实例,一步一步接近 DP,主要内容包括:

  1. 通过最通俗易懂的例子:Climbing Stairs (爬楼梯),初步领悟 DP,带有详细的分析思路和代码。代码版本一步一步从1.0,优化到1.1,最后形成终极版1.2.
  2. 聊一道面试真题,分析机器人行驶最短路径,再次体会 DP 构思过程;
  3. 通过2个例子,总结使用 DP 的通用条件;
  4. 实战 LeetCode 上的一道题:Longest Valid Parentheses (最长连续有效括号对),一次通过率是23.4%,属于 hard 级别。这道题有难度,但具有很强的 DP 风格,是理解 DP 的试金石;
  5. 使用 Python 编码实现以上3个问题;
  6. 最后梳理 DP,通过以上,您将学习到 DP 求解最重要的两个步骤:
    • 如何自顶而下地思考方式找到 DP 的迭代方程?
    • 通过自底向上地方法将子问题求解写入到临时表中,这样保证只做一次求解。

阅读全文: http://gitbook.cn/gitchat/activity/5b173ce1e4e6d50625638322

您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

FtooAtPSkEJwnW-9xkCLqSTRpBKX

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值