Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 29871c1

Browse files
feat: add js solution to lc problem: No.0719 (doocs#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‎

Lines changed: 37 additions & 0 deletions
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‎

Lines changed: 37 additions & 0 deletions
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 -->
Lines changed: 32 additions & 0 deletions
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)

AltStyle によって変換されたページ (->オリジナル) /