看到一个面经题,是maximum sum of non-overlapping subarray 的改版。
一个数组[1,5,2,-2,3,4], k = 3 它让求两个interval的和的最大值,问题是,不是这两个interval分别长k,而是加起来为k……比如k=3就是分成(1,2)长度的interval(0,3这种不算)也就是说这道题答案是(5)+(3+4)= 12.
我只能想到n*k的做法,就是从头扫,找到0-i之间长度为L的最大subarray sum;然后再从尾扫,找到n-1 - j的长度为L的最大subarray sum;然后再扫一遍 每次找MAX(array1[i][m] + array2[i+1][k-m]))。 大家对这题有什么好的解法吗?