Magnetic Force Between Two Balls LeetCode solution in JavaScript

1
/**
2
* @param {number[]} position
3
* @param {number} m
4
* @return {number}
5
*/
6
var maxDistance = function (position, m) {
7
position.sort((a, b) => a - b);
8

9
let left = 1,
10
right = Math.max(...position) - Math.min(...position);
11
max = -1;
12
while (left <= right) {
13
const p = Math.floor((left + right) / 2);
14
if (isValid(position, m, p)) {
15
max = p;
16
left = p + 1;
17
} else {
18
right = p - 1;
19
}
20
}
21

22
return max;
23
};
24

25
const isValid = (sortedPosition, m, p) => {
26
let counter = 1;
27
let prev = sortedPosition[0];
28
for (let i = 1; i < sortedPosition.length; ++i) {
29
if (sortedPosition[i] - prev >= p) {
30
counter++;
31
prev = sortedPosition[i];
32
}
33
}
34

35
return counter >= m;
36
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0