root двоичного дерева поиска с различными ключами, вещественное число target и целое k. Найдите k ключей дерева, которые ближе всего к target, то есть у которых |ключ - target| наименьшее.
Гарантируется, что набор из k ближайших ключей определяется однозначно. Ключи можно вернуть в любом порядке.
Дополнительно: если дерево сбалансировано, сможете ли вы обойтись временем меньше O(n)?root=tree_node([20, 10, 30, 5, 15, None, 40]), target=17.5, k=3 → [10, 15, 20]
Расстояния от 17.5: до 15 — 2.5, до 20 — 2.5, до 10 — 7.5, до 30 — 12.5. Три ближайших ключа: 15, 20 и 10.
root=tree_node([8, 3]), target=100.0, k=1 → [8]
Цель больше всех ключей, ближайший к ней — наибольший ключ 8.
root=tree_node([20, 10, 30, 5, 15, None, 40]), target=17.5, k=3
[10, 15, 20]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 53 теста на сервере, включая скрытые.