1. Задача: Дан список отсортированных по неубыванию чисел (a), индекс одного из них (index) и сколько чисел нужно вернуть (k). Вернуть k чисел наиболее близких по значению к a[index].
func findKClosest(a []int, index, k int) []int {
l, r := index-1, index
res := make([]int, 0, k)
for range k {
if l < 0 {
res = append(res, a[r])
r++
} else if r >= len(a) {
res = append(res, a[l])
l--
} else {
if a[index] - a[l] > a[r] - a[index] {
res = append(res, a[r])
r++
} else {
res = append(res, a[l])
l--
}
}
}
return res
}Ответ
Временная сложность O(k),…