658. Find K Closest Elements class Solution: def findClosestElements(self, arr: List[int], k: int, x: int) -> List[int]: ### 10^4 可以先排序 return sorted(sorted(arr,key = lambda n : abs(n-x))[:k]) class Solution: def findClosestElements(self, arr: List[int], k: int, x: int) -> List[int]: if x < arr[0]: return arr[:k] if x > arr[-1]: return arr[-k:] l, r = 0, len(arr)-k ## 区间 [) while l < r: ## 终止 == mid = (l + r)//2 ## [1,2,3,4,5] ## [0,1,2,3,4] ## first mid 0 ## dis ### 如何更新 if abs(arr[mid] - x) > abs(arr[mid+k]-x): l = mid+1 else: r = mid return arr[l:l+k]