719. Find K-th Smallest Pair Distance
解法:二分法+滑动窗口+尺取
class Solution {
public int smallestDistancePair(int[] nums, int k) {
Arrays.sort(nums);
int len=nums.length;
int low=0,high=nums[len-1]-nums[0];
while(low<high){
int mid=(low+high)/2;
int cnt=0;
for(int i=0,j=1;i<len;i++){
while(j<len &&nums[j]-nums[i]<=mid)
j++;
cnt+=j-i-1;
}
if(cnt<k)
low=mid+1;
else
high=mid;
}
return low;
}
}