Проверьте сложность, аллокации, глубину стека и читаемость инвариантов. Краткость синтаксиса не гарантирует меньшую стоимость или более понятное поведение.
Чем компактное решение может уступать вложенной функции
Проверьте сложность, аллокации, глубину стека и читаемость инвариантов. Краткость синтаксиса не гарантирует меньшую стоимость или более понятное поведение.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Рекурсивный обход дерева переписали в короткое выражение с повторным копированием массива на каждом шаге. Какие недостатки нужно проверить, кроме числа строк?
Ответ
Проверьте сложность, аллокации, глубину стека и читаемость инвариантов. Краткость синтаксиса не гарантирует меньшую стоимость или более понятное поведение.
Повторное объединение растущих массивов может сделать линейный обход квадратичным. Накопитель во вложенной функции иногда эффективнее и скрывает вспомогательное состояние. Сравнивайте реализации на пустом, глубоком и широком дереве. Отдельная функция или итеративный стек могут быть лучше, если упрощают тестирование и устраняют предел рекурсии.