Lintcode43 Maximum Subarray III solution 题解

【题目描述】

Given an array of integers and a number k, find k non-overlapping subarrays which have the largest sum.The number in each subarray should be contiguous.Return the largest sum.

Notice:The subarray should contain at least one number

给定一个整数数组和一个整数 k,找出 k 个不重叠子数组使得它们的和最大。每个子数组的数字在数组中的位置应该是连续的。返回最大的和。

注意:子数组最少包含一个数

【题目链接】

http://www.lintcode.com/en/problem/maximum-subarray-iii/

【题目解析】

最重要的思路:

维护一个 globalMax [ k+1 ] [ len+1 ] 的矩阵, globalMax [ i ] [ j ]  代表了前 j 个数中取 i 个 subarray 得到的最大和, 注意这里第 j 个数不一定被包括。

一个 int 类型: localMax, 每次写第 globalMax 的 第 i 行 第 j 列时用到的, 记录前 j 个数中取 i 个 subarray 得到的最大和, 但包括第 j 个数。

【参考答案】

http://www.jiuzhang.com/solutions/maximum-subarray-iii/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值