Skip to content

Commit badd49c

Browse files
authored
Update 2762-continuous-subarrays.js
1 parent a512dae commit badd49c

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

2762-continuous-subarrays.js

+31
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,34 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
const continuousSubarrays = function(nums) {
6+
let res = 0
7+
let l = 0
8+
let r = 0
9+
const mq1 = [], mq2 = []
10+
for(let r = 0; r < nums.length; r++) {
11+
const e = nums[r]
12+
while(mq1.length && nums[mq1.at(-1)] < e) mq1.pop()
13+
mq1.push(r)
14+
while(mq2.length && nums[mq2.at(-1)] > e) mq2.pop()
15+
mq2.push(r)
16+
17+
while(mq1.length && mq2.length && Math.abs(nums[mq1[0]] - nums[mq2[0]]) > 2) {
18+
if(mq1.length && mq1[0] <= l) mq1.shift()
19+
if(mq2.length && mq2[0] <= l) mq2.shift()
20+
l++
21+
}
22+
23+
res += r - l + 1
24+
}
25+
return res
26+
};
27+
28+
29+
// another
30+
31+
132
/**
233
* @param {number[]} nums
334
* @return {number}

0 commit comments

Comments
 (0)