Skip to content

Commit 36b012b

Browse files
committed
Time: 352 ms (47.92%), Space: 42.2 MB (65.97%) - LeetHub
1 parent 45b5535 commit 36b012b

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# time complexity: O(n)
2+
# space complexity: O(k)
3+
from typing import List
4+
5+
6+
class Solution:
7+
def maxSubarraySum(self, nums: List[int], k: int) -> int:
8+
minS = [float('inf') for _ in range(k-1)]+[0]
9+
prefix, result = 0, float('-inf')
10+
for i, x in enumerate(nums):
11+
prefix += x
12+
iModK = i % k
13+
result = max(result, prefix-minS[iModK])
14+
minS[iModK] = min(prefix, minS[iModK])
15+
return result
16+
17+
18+
nums = [1, 2]
19+
k = 1
20+
print(Solution().maxSubarraySum(nums, k))
21+
nums = [-1, -2, -3, -4, -5]
22+
k = 4
23+
print(Solution().maxSubarraySum(nums, k))
24+
nums = [-5, 1, 2, -3, 4]
25+
k = 2
26+
print(Solution().maxSubarraySum(nums, k))

0 commit comments

Comments
 (0)