【动态规划】最大连续序列和最大子矩阵

一开始接触的动态规划题目就是在杭电OJ上的1003 Max Sum,求一个数列的最大连续子序列,当时花了好长时间才弄懂。后来接触到更多的动态规划题目,就愈发头晕了。

Max Sum 这题应该是很基础吧,状态转移方程为:DP[i]=Max{num[i],DP[i-1]+num[i]} 其中DP[i]表示的是以i位置结束的最大连续子序列的和。如果DP[i-1]<0,也就是说 DP[i-1]+num[i]<num[i],那么最大的序列和就更新为num[i]。具体的代码如下:

 

基础的问题解决了,那接下来就要面对难一点的了。HDOJ 1081 给你一个矩阵,要你求出最大的子矩阵,所谓最大子矩阵就是:sub-rectangle with the largest sum。这是一个一维扩展到二维的问题,我们可以转化为一维的问题来解决:

详细的思路已经在注释里面写了

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值