DEV Community

codingpineapple
codingpineapple

Posted on

2 2

LeetCode 719. Find K-th Smallest Pair Distance (javascript solution)

Description:

Given an integer array, return the k-th smallest distance among all the pairs. The distance of a pair (A, B) is defined as the absolute difference between A and B.

Solution:

Time Complexity : O(nlog(n))
Space Complexity: O(1)

// Binary search + sliding window
var smallestDistancePair = function(nums, k) {
    nums.sort((a,b) => a-b);
    let lo = 0;
    let hi = nums[nums.length - 1] - nums[0];

    while (lo < hi) {
        let mi = lo + Math.floor((hi-lo) / 2);
        // Sliding window
        let count = 0, left = 0;
        for (let right = 1; right < nums.length; ++right) {
            // Keep moving left pointer until we reach a difference between two pointers that is less than mi
            while (nums[right] - nums[left] > mi) left++;
            // Add the amount of pairs in the window to the count
            count += right - left;
        }
        //count = number of pairs with distance <= mi
        if (count >= k) hi = mi;
        else lo = mi + 1;
    }
    return lo;
};
Enter fullscreen mode Exit fullscreen mode

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

SurveyJS custom survey software

JavaScript Form Builder UI Component

Generate dynamic JSON-driven forms directly in your JavaScript app (Angular, React, Vue.js, jQuery) with a fully customizable drag-and-drop form builder. Easily integrate with any backend system and retain full ownership over your data, with no user or form submission limits.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay