Minimum Absolute Difference Queries LeetCode solution in JavaScript

1
var minDifference = function (nums, queries) {
2
const qlen = queries.length,
3
len = nums.length;
4
const res = new Array(qlen).fill(-1);
5
const prefix = [];
6

7
for (let i = 0; i <= len; i++) {
8
if (i == 0) prefix[i] = new Array(101).fill(0);
9
else {
10
prefix[i] = Array.from(prefix[i - 1]);
11
prefix[i][nums[i - 1]]++;
12
}
13
}
14

15
for (let k = 0; k < qlen; k++) {
16
const [l, r] = queries[k];
17
const left = prefix[l],
18
right = prefix[r + 1];
19
let prev = -1,
20
ans = Infinity;
21
for (let i = 1; i <= 100; i++) {
22
const diff = right[i] - left[i];
23
if (diff == 0) continue;
24

25
if (prev != -1) {
26
ans = Math.min(ans, i - prev);
27
}
28
prev = i;
29
}
30
if (ans != Infinity) {
31
res[k] = ans;
32
}
33
}
34

35
return res;
36
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0