Skip to content

Commit 0d0f7ac

Browse files
authored
Create 658-find-k-closest-elements.js
1 parent 07242dd commit 0d0f7ac

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

658-find-k-closest-elements.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/**
2+
* @param {number[]} arr
3+
* @param {number} k
4+
* @param {number} x
5+
* @return {number[]}
6+
*/
7+
const findClosestElements = function(arr, k, x) {
8+
let lo = 0, hi = arr.length - k - 1;
9+
while (lo <= hi) {
10+
let mid = Math.floor(lo + (hi - lo) / 2);
11+
if (Math.abs(x - arr[mid]) > Math.abs(x - arr[mid+k])) {
12+
lo = mid + 1;
13+
} else {
14+
hi = mid - 1;
15+
}
16+
}
17+
return arr.slice(lo, lo+k);
18+
};

0 commit comments

Comments
 (0)