给定一个排序好的数组 arr,两个整数 k 和 x,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须按升序排好。根据题解,可以使用滑动窗口的方法,从数组两端开始移除元素,直到剩下 k 个最接近 x 的数。代码实现如下:
```python
class Solution:
def findClosestElements(self, arr: List[int], k: int, x: int) -> List[int]:
n = len(arr)
left, right = 0, n - 1
remove = n - k
for _ in range(remove):
if abs(arr[left] - x) > abs(arr[right] - x):
left += 1
else:
right -= 1
return arr[left: right + 1]
```
通过这种方法,可以高效地找到最接近 x 的 k 个数。