Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // MARK: - 658. Find K Closest Elements
- // Сдвигаем границы массива, исключая самый дальний элемент
- // Двигаем тот указатель, значение по которому дальше по abs от нужного числа X
- func findClosestElements(_ arr: [Int], _ k: Int, _ x: Int) -> [Int] {
- var l = 0
- var r = arr.count - 1
- // в момент когда длина символов будет равна K, цикл закончится
- while r - l + 1 > k {
- let absR = abs(arr[r] - x)
- let absL = abs(arr[l] - x)
- if absL <= absR {
- r -= 1
- } else {
- l += 1
- }
- }
- return Array(arr[l...r])
- }
- findClosestElements([1,2,3,4,5], 4, -1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement