К задачам

Ускорить рекурсивную функцию с тремя вызовами

СредняяАлгоритмы
Лучше работает на десктопе
ДинамикаРекуррентностьТрибоначчиМатричное возведение
Кадр с условием задачи 1
Кадр записи

На собеседовании дана рекурсивная функция:

def g(n):
    if n < 3:
        return 1
    return g(n - 1) + g(n - 2) + g(n - 3)

Сначала нужно оценить сложность такой реализации, а затем переписать функцию так, чтобы она возвращала тот же ответ, но работала быстрее.

Сигнатура

def g_fast(n: int) -> int:

Примеры

Пример 1

Вход:
n = 0
Выход:1

Базовый случай n=0

Пример 2

Вход:
n = 2
Выход:1

Базовый случай n=2

Пример 3

Вход:
n = 3
Выход:3

Первое рекурсивное значение

Код
Python · Ctrl/⌘ + Enter для запуска
Лимит
05:00
Консоль
Нажмите кнопку запуска или Ctrl+Enter
Ускорить рекурсивную функцию с тремя вызовами — Алгоритмы задача — ML Mentor