码迷,mamicode.com
首页 > 其他好文 > 详细

DP:2D->1D

时间:2018-09-14 13:14:38      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:分享   完全   思路   二维   info   自身   保存   黄色   ima   

黄金矿工等问题,DP处理一般是构建dp[][]二维数组来求解,便于理解,但是这样的话就保存了一个m*n矩阵,空间上浪费了,因为一般来说,当前状态之和之前一两步的状态有关,所以没必要保存之前所有的结果。


下面来讲讲如何理解从dp[][]过渡到dp[]

技术分享图片

如上图所示,如果状态转移式:技术分享图片,那么我们求黄色区域只需要知道两个红色区域了,如果以 i 为数组,那我们完全可以将6视为cur[i-1],4视为pre[i],递推关系如下:

技术分享图片

pre怎么求呢?pre在很多次循环之前也是cur呀,所以只要有边界条件,都是可以求出来滴!只不过只保存两列数据,而不是整个矩阵。


 

能不能把pre数组也用cur 替代呢?

 

个人理解如下(可能不对,但是是一个思路,之后再慢慢理解吧。。) 

   技术分享图片   叉叉代表pre和cur[i-1],我们完全可以将左边的xx全部移到右边,然后自身迭代就可以了

技术分享图片

 

DP:2D->1D

标签:分享   完全   思路   二维   info   自身   保存   黄色   ima   

原文地址:https://www.cnblogs.com/nzmx123/p/9645915.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!