Magnetic Force Between Two Balls LeetCode solution in JavaScript
1/**2* @param {number[]} position3* @param {number} m4* @return {number}5*/6var maxDistance = function (position, m) {7position.sort((a, b) => a - b);89let left = 1,10right = Math.max(...position) - Math.min(...position);11max = -1;12while (left <= right) {13const p = Math.floor((left + right) / 2);14if (isValid(position, m, p)) {15max = p;16left = p + 1;17} else {18right = p - 1;19}20}2122return max;23};2425const isValid = (sortedPosition, m, p) => {26let counter = 1;27let prev = sortedPosition[0];28for (let i = 1; i < sortedPosition.length; ++i) {29if (sortedPosition[i] - prev >= p) {30counter++;31prev = sortedPosition[i];32}33}3435return counter >= m;36};