Skip to content

Commit 7bb69c1

Browse files
committed
Time: 51 ms (100%), Space: 83.9 MB (100%) - LeetHub
1 parent 7f289c9 commit 7bb69c1

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
function numGoodSubarrays(v: number[], k: number): number {
2+
const mp = new Map<number, number>();
3+
const n = v.length;
4+
mp.set(0, 1);
5+
let sum = 0;
6+
let cnt = 0;
7+
8+
for (let i = 0; i < n;) {
9+
let j = i;
10+
let sum2 = sum;
11+
12+
while (j < n && v[j] === v[i]) {
13+
sum2 = (sum2 + v[j]) % k;
14+
cnt += mp.get(sum2 % k) || 0;
15+
j++;
16+
}
17+
18+
j = i;
19+
while (i < n && v[j] === v[i]) {
20+
sum = (sum + v[j]) % k;
21+
mp.set(sum, (mp.get(sum) || 0) + 1);
22+
i++;
23+
}
24+
}
25+
26+
return cnt;
27+
}

0 commit comments

Comments
 (0)