diff --git a/javascript/1984-Minimum-Difference-Between-Highest-and-Lowest-of-K-Scores.js b/javascript/1984-Minimum-Difference-Between-Highest-and-Lowest-of-K-Scores.js new file mode 100644 index 000000000..b50b93538 --- /dev/null +++ b/javascript/1984-Minimum-Difference-Between-Highest-and-Lowest-of-K-Scores.js @@ -0,0 +1,30 @@ +/** + * Loglinear/N*log(N) + * Time O(N*log(N)) | Space O(1) + * https://leetcode.com/problems/minimum-difference-between-highest-and-lowest-of-k-scores + * + * @param {number[]} nums + * @param {number} k + * @return {number} + */ +var minimumDifference = function(nums, k) { + + const isEdgeCase = (k === 1); + if (isEdgeCase) return 0; + + nums = nums.sort((a, b) => { + return a - b; + }); + + let i = 0; + let j = k - 1; + let minDiffrence = Infinity; + + while (j < nums.length) { + minDiffrence = Math.min(Math.abs(nums[i] - nums[j]), minDiffrence); + j++; + i++; + } + + return minDiffrence; +};