Skip to content

Commit eef5203

Browse files
authored
Update 2488-count-subarrays-with-median-k.js
1 parent 9cb24d6 commit eef5203

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

2488-count-subarrays-with-median-k.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,39 @@ const permutationArrayWithMedianK = (a, k) => {
2525
}
2626
return res;
2727
};
28+
29+
30+
// another
31+
32+
/**
33+
* @param {number[]} nums
34+
* @param {number} k
35+
* @return {number}
36+
*/
37+
var countSubarrays = function(nums, k) {
38+
const n = nums.length;
39+
for(let i = 0; i < n; i++) {
40+
nums[i] = nums[i] < k ? -1 : nums[i] === k ? 0 : 1
41+
}
42+
const evenSum = {}
43+
const oddSum = {}
44+
evenSum[0] = 1
45+
let sum = 0
46+
let res = 0
47+
for(let i = 0; i < n; i++) {
48+
sum += nums[i]
49+
if(i % 2 === 0) {
50+
if(evenSum[sum] != null) res += evenSum[sum]
51+
if(oddSum[sum - 1] != null) res += oddSum[sum - 1]
52+
if(oddSum[sum] == null) oddSum[sum] = 0
53+
oddSum[sum]++
54+
} else {
55+
if(oddSum[sum] != null) res += oddSum[sum]
56+
if(evenSum[sum - 1] != null) res += evenSum[sum - 1]
57+
if(evenSum[sum] == null) evenSum[sum] = 0
58+
evenSum[sum]++
59+
}
60+
}
61+
// console.log(evenSum, oddSum, nums)
62+
return res
63+
};

0 commit comments

Comments
 (0)