天天看点

lintcode 最大子数组III

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

  返回最大的和。

  子数组最少包含一个数

  给出数组 <code>[-1,4,-2,3,-2,3]</code> 以及 k = <code>2</code>,返回 <code>8</code>

  dp[i][j] = max(dp[x][j-1]+maxs[x+1][i])

  dp[i][j] 表示前 i 个数中 j 个子数组的最大值,

  maxs[i][j] 表示 第i个数到第j个数中最大子数组的和。

  

继续阅读