学动态规划的感悟
【例】以[1,5,2,3,4]找最长的递增数组长度为例。此处最常见的暴力算法便是直接使用递归,1先去找大于1的,然后找到2再从2开始找大于2的,期间长度每找到就加一次1。
【例】以上图这样的三角数组为例,用二维数组表示就是 7 38 810 每次仅能向下或向右下走(仅能移动一步),找到其路径最大的和。此处也直接用递归,直接从第一个元素(7)开始,然后3和8相加找到最大的。然后用最大的与8和1或1和0分别相加再找出最大的。这也是用了递归,因为每次与新一层得数相加时,是需要用到上一层相加的数(例如,7和8加起来,就不能在跟第三层的8相加了,只能是加1或加0再让这俩比较)。从大面上看,其实就是暴力搜索,因为递归的每一次都代表着一个二叉树的尝试其实会一直递归到结束,每一次都在比较。 【总结1】上述便为暴力搜索算法的应用 【总结2】而上述的每一次递归其实都会直接涉及重复问题,第一个例子若1,2,3,4有了,就不必再1,
学动态规划的感悟最先出现在Python成神之路。
版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/17886.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论