为什么学习动态规划
1.编码能力的重要分水岭。
在动态规划上卡住并放弃算法学习的人每年加起来可绕地球三圈。
2.面试官心里的一杆标尺。
算法这是一个大家都知道有用,人人都知道着应该学好,
网络上各种资料也很丰富的知识,如果没有学会,足以说明很多问题。
3.消除恐惧,建立自信。
学会后在今后的学习遇到困难时,你都能有信心地告诉自己,
你一定可以,因为你已经战胜了几乎公认的最困难的学习。
如何学习动态规划
1.算法学习指的是编码能力。
并不是能记住或者知道多少种算法,所以没有人能通过读描述和证明学会动态规划。
2.动态规划是一种算法思想而不是一种具体算法,所以没有某一两道题能完整地阐释动态规划。
目前能搜索到的大部分关于动态规划的学习资料,没有足够的训练量来让大家理解动态规划这个思想,
以至于让很多人没有将这个思想和具体的算法分清,甚至认为动态规划就是LCS就是背包问题。
3.唯一的学习途径是做题,不停地题。
做到后面忘了前面又跑回来做一遍地做题,做多了发现规律再把做过的题梳理比较地做题,
同样一道题换着不同方法来实现地做题,做你能找到的所有题,直到自己领悟为止。
动态规划的学习目标
1.在看到状态转换方程时就能写出算法。
2.能够自己推导分析出状态转换方程。
大量参考Grandyang以及Code_Ganker大佬的博客
相应例题的 Github