How to find the k closest elements to a giving value in sorted array with JavaScript

1 Answer

0 votes
function findKClosestElements(arr, k, value) {
    let left = 0;
    let right = arr.length - 1;
     
    while (right - left >= k) {
        if (Math.abs(arr[left] - value) > Math.abs(arr[right] - value)) {
            left++;
        }
        else {
            right--;
        }
    }
     
    while (left <= right) {
        console.log(arr[left]);
        left++;
    }
}
         
const arr = [6, 10, 12, 15, 17, 18, 20, 25, 28];
const value = 16;
const k = 4;
 
findKClosestElements(arr, k, value);
 
 
 
 
 
/*
run:
    
12 
15 
17 
18 
        
*/

 



answered Jan 21, 2024 by avibootz
edited Jan 21, 2024 by avibootz
...