Skip to content

Commit 9009f95

Browse files
Time: 265 ms (79.23%) | Memory: 34.7 MB (53.46%) - LeetSync
1 parent df74fc5 commit 9009f95

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed
Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
1-
from sortedcontainers import SortedList
1+
from collections import deque
22

33
class Solution:
44
def constrainedSubsetSum(self, nums: List[int], k: int) -> int:
5-
avl = SortedList([nums[0]])
5+
d = deque([])
66

7-
for i in range(1, len(nums)):
8-
nums[i] = max(nums[i], avl[-1] + nums[i])
7+
for i in range(len(nums)):
8+
nums[i] = max(nums[i], nums[i] + (d[0][0] if d else 0))
99

10-
avl.add(nums[i])
10+
while d and d[-1][0] <= nums[i]:
11+
d.pop()
1112

12-
if len(avl) > k:
13-
avl.remove(nums[i - k])
13+
if d and d[0][1] <= i - k:
14+
d.popleft()
15+
16+
d.append((nums[i], i))
1417

1518
return max(nums)

0 commit comments

Comments
 (0)