658. Find K Closest Elements
class Solution:
def findClosestElements(self, arr: List[int], k: int, x: int) -> List[int]:
l, r = 0, len(arr) - k
while l < r:
m = (l + r) // 2
if x > arr[m + k]:
l = m + 1
elif x < arr[m]:
r = m
else:
if abs(arr[m] - x) > abs(arr[m + k] - x):
l = m + 1
else:
r = m
return arr[l : l + k]