Advertisement
serega1112

719 - binary search

Dec 20th, 2020
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.68 KB | None | 0 0
  1.     def smallestDistancePair(self, nums: List[int], k: int) -> int:
  2.  
  3.         def check(x):
  4.             l = r = count = 0
  5.             n = len(nums)
  6.             while r < n:
  7.                 if nums[r] - nums[l] <= x:
  8.                     r += 1
  9.                 else:
  10.                     count += (n - r)
  11.                     l += 1
  12.             return n * (n - 1) / 2 - count
  13.        
  14.         nums.sort()
  15.         l = -1
  16.         r = nums[-1] - nums[0]
  17.        
  18.         while r - l > 1:
  19.             mid = l + (r - l) // 2
  20.             count = check(mid)
  21.             if count < k:
  22.                 l = mid
  23.             else:
  24.                 r = mid
  25.                
  26.         return r
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement