https://leetcode.com/problems/find-k-closest-elements/description/
타겟 에서 가까운 k(범위)개의 요소를 반환하라
예를 들어 [1,2,3,4,5]가 있고 x = 5 k=2ㄹㅏ고 하면
중간 범위M을 포함하여 k만큼 범위를 정하고 -> [2,3]
중간값에서 x를 뺀 값보다 범위 밖의 값(m+k)에서 x를 뺀 값이 작으면 범위 밖의 값이 x에 더 가깝다는 뜻이다.
띠리사 중간값의 위치를 수정한다.
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] > arr[m+k] - x:
l = m+1
else:
r = m
return arr[l:l+k]