DevPrep

Все темы › Алгоритмы и структуры данных

Что такое рекурсия и чем она опасна?

Middle PRO

Суть

Рекурсия — функция вызывает саму себя, сводя задачу к меньшей. Нужны база (условие останова) и шаг, приближающий к базе. Естественна для деревьев, графов, «разделяй и властвуй» (merge sort, quicksort), разбора вложенных структур (JSON, выражения).

func sumTo(_ n: Int) -> Int { n == 0 ? 0 : n + sumTo(n - 1) }
print(sumTo(10_000))   // 50005000

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store