Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- //f(i) = abs(a[i] - x)
- // g(i) = f(i) <= f(i+k)
- // 00 111111
- //TC: O(log(n-k))
- vector<int> findClosestElements(vector<int>& arr, int k, int x) {
- int n = arr.size();
- int lo = 0;
- int hi = n - k;
- int mid;
- while(lo < hi)
- {
- mid = lo + (hi - lo)/2;
- if(x - arr[mid] > arr[mid+k] - x)
- {
- lo = mid + 1;
- }
- else
- {
- hi = mid;
- }
- }
- return vector<int>(arr.begin() + lo, arr.begin() + lo + k);
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement