classSolution{publicList<Integer>findClosestElements(int[] arr,int k,int x){int n = arr.length;int idx =0;int min =Integer.MAX_VALUE;// 找到最接近x的元素索引for(int i =0; i < n; i++){int sub =Math.abs(arr[i]- x);if(sub < min){
idx = i;
min = sub;}}// 从最接近x的元素开始取左侧的k个数(如果可以)int left = idx - k +1;int right = idx;// 防止左指针越界if(left <0){
left =0;
right = k -1;}// 找到最接近x的k个数for(int i =0; i < k -1; i++){// 如果此时右指针右侧的元素比左指针指向的元素更接近x,左右指针右移一位if(right +1< n &&Math.abs(arr[left]- x)>Math.abs(arr[right +1]- x)){
left++;
right++;}elsebreak;}List<Integer> res =newArrayList<>();for(int i = left; i <= right; i++){
res.add(arr[i]);}return res;}}