Re: [闲聊] 每日leetcode

楼主: involution (内卷是好文明)   2024-08-14 10:07:55
※ 引述《Rushia (早瀬ユウカの体操服 )》之铭言:
: https://leetcode.com/problems/find-k-th-smallest-pair-distance/description
: 719. Find K-th Smallest Pair Distance
首先观察到 答案是与位置无关的
也就是任意两个元素互换之后结果还是一样的
所以可以假设是排序过的了
一旦假设是排序过的 就能发现可以用 binary search + sliding window 做
找出最小的 r 使得差距 <=r 的 pair 数 >= k 就是答案了
```
class Solution {
public:
int smallestDistancePair(vector<int>& nums, int k) {
int n = nums.size();
sort(nums.begin(), nums.end());
auto pred = [&](int r) {
// #[(i,j)<=r] >= k
int start = 0, total = 0;
for (int end = 0; end < n; end++) {
while (start < end && nums[end] - nums[start] > r)
start += 1;
total += end - start;
}
return total >= k;
};
int low = 0, high = 1e7;
while (low < high) {
int mid = low + (high - low) / 2;
if (pred(mid)) high = mid;
else low = mid + 1;
}
return low;
}
};
```
作者: Rushia (みけねこ的鼻屎)   2024-08-14 10:16:00
别卷了
作者: pandix (面包屌)   2024-08-14 10:21:00
大师
作者: DJYOMIYAHINA (通通打死)   2024-08-14 10:22:00
我跪下来了
作者: sustainer123 (caster)   2024-08-14 10:24:00
大师
作者: argorok (s.green)   2024-08-14 10:32:00
大师
作者: oin1104 (是oin的说)   2024-08-14 10:35:00
大师
作者: dont   2024-08-14 10:55:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com