- public List<Integer> findClosestElements(int[] arr, int k, int x) {
- int n=arr.length;
- int dis=0;
- for(int i=0;i<k;i++){
- dis+=Math.abs(x-arr[i]);
- }
- int min=dis;
- int[] pos={0,k-1};
- for(int i=0;i+k<n;i++){
- dis-=Math.abs(x-arr[i]);
- dis+=Math.abs(x-arr[i+k]);
- if(dis<min){
- pos[0]=i+1;
- pos[1]=i+k;
- min=dis;
- }
- }
- List<Integer> ans=new ArrayList<>();
- for(int i=pos[0];i<=pos[1];i++){
- ans.add(arr[i]);
- }
- return ans;
- }