658. Find K Closest Elements
Input: [1,2,3,4,5], k=4, x=3
Output: [1,2,3,4]Input: [1,2,3,4,5], k=4, x=-1
Output: [1,2,3,4]// Binary Search
vector<int> findClosestElements(vector<int>& arr, int k, int x) { // time: O(logn); space: O(k)
int left = 0, right = arr.size() - k;
while (left < right) {
int mid = left + (right - left) / 2;
if (x - arr[mid] > arr[mid + k] - x) left = mid + 1;
else right = mid;
}
return vector<int> (arr.begin() + left, arr.begin() + left + k);
}Last updated