Skip to content

Commit 4608d03

Browse files
authored
Update 2461-maximum-sum-of-distinct-subarrays-with-length-k.js
1 parent bdcb0f8 commit 4608d03

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

2461-maximum-sum-of-distinct-subarrays-with-length-k.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,38 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} k
4+
* @return {number}
5+
*/
6+
const maximumSubarraySum = function (nums, k) {
7+
const map = new Map(), n = nums.length
8+
let i = 0, res = 0, sum = 0
9+
10+
while(i < n && i < k) {
11+
const cur = nums[i]
12+
map.set(cur, (map.get(cur) || 0) + 1 )
13+
sum += cur
14+
i++
15+
}
16+
if(map.size === k) res = sum
17+
18+
for(i = k; i < n; i++) {
19+
const cur = nums[i]
20+
map.set(cur, (map.get(cur) || 0) + 1)
21+
const pre = nums[i - k]
22+
map.set(pre, (map.get(pre) || 0) - 1)
23+
if(map.get(pre) === 0) map.delete(pre)
24+
25+
sum += cur
26+
sum -= nums[i - k]
27+
28+
if(map.size === k) res = Math.max(res, sum)
29+
}
30+
31+
return res
32+
}
33+
34+
// another
35+
136
/**
237
* @param {number[]} nums
338
* @param {number} k

0 commit comments

Comments
 (0)