2616. Minimize the Maximum Difference of Pairs

Tapan RachchhTapan Rachchh
1 min read
class Solution:
    def minimizeMax(self, nums: List[int], p: int) -> int:
        l = len(nums)

        def canMakePairs(maxDiff):
            count = 0
            i = 1
            while i < len(nums):
                if nums[i] - nums[i - 1] <= maxDiff:
                    count += 1
                    i += 2                                     
                else:
                    i += 1
            return count >= p

        nums.sort()
        left = 0
        right = nums[-1] - nums[0]
        result = right

        while left <= right:
            mid = (left + right) // 2
            if canMakePairs(mid):
                result = mid
                right = mid - 1
            else:
                left = mid + 1

        return result
0
Subscribe to my newsletter

Read articles from Tapan Rachchh directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Tapan Rachchh
Tapan Rachchh