Skip to content

Commit 29871c1

Browse files
authored
feat: add js solution to lc problem: No.0719 (#3413)
1 parent 957fb1e commit 29871c1

File tree

3 files changed

+106
-0
lines changed

3 files changed

+106
-0
lines changed

solution/0700-0799/0719.Find K-th Smallest Pair Distance/README.md

+37
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,43 @@ function smallestDistancePair(nums: number[], k: number): number {
226226
}
227227
```
228228

229+
#### JavaScript
230+
231+
```js
232+
/**
233+
* @param {number[]} nums
234+
* @param {number} k
235+
* @return {number}
236+
*/
237+
function smallestDistancePair(nums, k) {
238+
nums.sort((a, b) => a - b);
239+
const n = nums.length;
240+
let left = 0,
241+
right = nums[n - 1] - nums[0];
242+
243+
while (left < right) {
244+
const mid = (left + right) >> 1;
245+
let count = 0,
246+
i = 0;
247+
248+
for (let j = 0; j < n; j++) {
249+
while (nums[j] - nums[i] > mid) {
250+
i++;
251+
}
252+
count += j - i;
253+
}
254+
255+
if (count >= k) {
256+
right = mid;
257+
} else {
258+
left = mid + 1;
259+
}
260+
}
261+
262+
return left;
263+
}
264+
```
265+
229266
<!-- tabs:end -->
230267

231268
<!-- solution:end -->

solution/0700-0799/0719.Find K-th Smallest Pair Distance/README_EN.md

+37
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,43 @@ function smallestDistancePair(nums: number[], k: number): number {
220220
}
221221
```
222222

223+
#### JavaScript
224+
225+
```js
226+
/**
227+
* @param {number[]} nums
228+
* @param {number} k
229+
* @return {number}
230+
*/
231+
function smallestDistancePair(nums, k) {
232+
nums.sort((a, b) => a - b);
233+
const n = nums.length;
234+
let left = 0,
235+
right = nums[n - 1] - nums[0];
236+
237+
while (left < right) {
238+
const mid = (left + right) >> 1;
239+
let count = 0,
240+
i = 0;
241+
242+
for (let j = 0; j < n; j++) {
243+
while (nums[j] - nums[i] > mid) {
244+
i++;
245+
}
246+
count += j - i;
247+
}
248+
249+
if (count >= k) {
250+
right = mid;
251+
} else {
252+
left = mid + 1;
253+
}
254+
}
255+
256+
return left;
257+
}
258+
```
259+
223260
<!-- tabs:end -->
224261

225262
<!-- solution:end -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} k
4+
* @return {number}
5+
*/
6+
function smallestDistancePair(nums, k) {
7+
nums.sort((a, b) => a - b);
8+
const n = nums.length;
9+
let left = 0,
10+
right = nums[n - 1] - nums[0];
11+
12+
while (left < right) {
13+
const mid = (left + right) >> 1;
14+
let count = 0,
15+
i = 0;
16+
17+
for (let j = 0; j < n; j++) {
18+
while (nums[j] - nums[i] > mid) {
19+
i++;
20+
}
21+
count += j - i;
22+
}
23+
24+
if (count >= k) {
25+
right = mid;
26+
} else {
27+
left = mid + 1;
28+
}
29+
}
30+
31+
return left;
32+
}

0 commit comments

Comments
 (0)