[LeetCode] 658. Find K Closest Elements

Chobby·약 12시간 전

LeetCode

목록 보기
1086/1086

😎풀이

  1. 가까운 요소를 우선 정렬하는 헬퍼 콜백함수 정의
  2. 가까운 순서대로 정렬된 요소 중 k개를 선택
  3. 오름차 순으로 정렬하여 원본 순서대로 반환
function findClosestElements(arr: number[], k: number, x: number): number[] {
    const sortCloser = (a: number, b: number) => {
        const aGap = Math.abs(a - x)
        const bGap = Math.abs(b - x)
        if(aGap === bGap) return a - b
        return aGap - bGap
    }
    const sorted = arr.toSorted(sortCloser)
    return sorted.slice(0, k).sort((a, b) => a - b)
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글