Skip to content

Commit dec9c08

Browse files
authored
Update 992-subarrays-with-k-different-integers.js
1 parent 50f8904 commit dec9c08

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

992-subarrays-with-k-different-integers.js

+29
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,32 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} k
4+
* @return {number}
5+
*/
6+
const subarraysWithKDistinct = function(nums, k) {
7+
return mostK(k) - mostK(k - 1)
8+
function mostK(limit) {
9+
const map = new Map()
10+
let i = 0, j = 0, res = 0
11+
const n = nums.length
12+
for(; j< n; j++) {
13+
const e = nums[j]
14+
map.set(e, (map.get(e) || 0) + 1)
15+
while(map.size > limit) {
16+
const tmp = nums[i]
17+
map.set(tmp, (map.get(tmp) || 0) - 1)
18+
if(map.get(tmp) === 0) map.delete(tmp)
19+
i++
20+
}
21+
res += j - i + 1
22+
}
23+
24+
return res
25+
}
26+
};
27+
28+
// another
29+
130
/**
231
* @param {number[]} A
332
* @param {number} K

0 commit comments

Comments
 (0)