Problem: Maximum Subarray III (LintCode)
思路
这是一道划分类的动态规划。选 k 个元素很难再像前面那样一个一个标记划分位置判断了,必须得放在一个二维数组里做判断
state:
localMax[i][j]
表示前 i 个数组当中,取 j 个数组,包含第 i 个数的 Maximum Sum;globalMax[i][j]
表示前 i 个数组当中,取 j 个数组,可以不包含第 i 个数组状态方程
易错点
第 j 个元素,在数组中是
nums[j - 1]
localMax[i][j] = Math.max(localMax[i][j - 1], globalMax[i - 1][j - 1]) + nums[j - 1];
Last updated
Was this helpful?