好像还行
比之前有一题类似的简单一些
那题还是medium==
class Solution {
public:
int numofPairsLessorEqualtoP(vector<int>&nums, int P) {
int l=0;
int total=0;
for(int r=1; r<nums.size(); r++) {
while(l<r && (nums[r]-nums[l])>P) {
l++;
}
total += (r-l);
}
return total;
}
int smallestDistancePair(vector<int>& nums, int k) {
sort(nums.begin(), nums.end());
int l=0;
int r=nums[nums.size()-1]-nums[0];
while(l<r) {
int mid = (l+r)/2;
if(numofPairsLessorEqualtoP(nums, mid)<k) {
l=mid+1;
}
else{
r=mid;
}
}
return l;
}
};