Intervals Between Identical Elements LeetCode solution in JavaScript

1
var getDistances = function (arr) {
2
const map = new Map();
3
const result = new Array(arr.length).fill(0);
4

5
for (let i = 0; i < arr.length; i++) {
6
const num = arr[i];
7
const val = map.get(num) || {
8
count: 0,
9
sum: 0,
10
};
11
result[i] += val.count * i - val.sum;
12
val.sum += i;
13
val.count++;
14
map.set(num, val);
15
}
16
map.clear();
17

18
for (let i = arr.length - 1; i >= 0; i--) {
19
const num = arr[i];
20
const val = map.get(num) || {
21
count: 0,
22
sum: 0,
23
};
24
result[i] += val.sum - val.count * i;
25
val.sum += i;
26
val.count++;
27
map.set(num, val);
28
}
29

30
return result;
31
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0