level - medium
자세한 설명과 내용은 아래 링크를 참고해주세요.
https://velog.io/@mdok1112/leetcode-find-k-closest-elementsjava
위의 링크에서는 설명과 자바코드가 들어있으며
여기서는 코틀린으로 작성한 코드만 있습니다.
class Solution {
fun findClosestElements(arr: IntArray, k: Int, x: Int): List<Int> {
val closer = HashMap<Int, Int>();
for (i in arr.indices) {
closer.put(i, kotlin.math.abs(arr[i] - x));
}
val keySet = ArrayList<Int>(closer.keys);
Collections.sort(keySet, Comparator { o1, o2 -> closer.get(o1)!!.compareTo(closer.get(o2)!!) });
val result = ArrayList<Int>();
for(i in 0 until k) {
result.add(arr[keySet.get(i)]);
}
result.sort();
return result;
}
}