作者:施华洛卉子 | 来源:互联网 | 2023-06-13 04:29
题解classSolution:defmaxSumOfThreeSubarrays(self,nums:List[int],k:int)-List[int]:Nlen(nums
- 题解
class Solution:def maxSumOfThreeSubarrays(self, nums: List[int], k: int) -> List[int]:N = len(nums)ss = [sum(nums[:k])]for i in range(k, N) :ss.append(ss[-1] + nums[i] - nums[i-k])maxl, maxr = ss[0], max(ss[2*k:])lp, rp = 0, ss.index(maxr, 2*k)maxval = maxl + maxr + ss[k]res = [lp, k, rp]for i in range(k+1, N-2*k+1) :changed = Falseif ss[i-k] > maxl:changed = Truemaxl, lp = ss[i-k], i-kif ss[i+k-1] == maxr:changed = Truemaxr = max(ss[i+k:])rp = ss.index(maxr,i+k)if ss[i] > ss[i-1] or changed:sss = maxl + maxr + ss[i]if sss > maxval:maxval = sssres = [lp, i, rp]return res