Что такое memoization?

Middle
524 просмотров
AFK Offer AI

Memoization — кеширование результатов функции для повторных вызовов с теми же аргументами. Классический пример: рекурсивный Фибоначчи без мемоизации — O(2ⁿ), с мемоизацией — O(n). В Go делаешь через map: memo := map[int]int{}, перед вычислением проверяешь, есть ли результат в map. Это top-down подход к dynamic programming. Мемоизация полезна, когда функция чистая (без побочных эффектов) и вызывается с одинаковыми аргументами. Для конкурентного доступа — sync.Map или мьютекс.

Следующий вопрос

Задача: реализуйте FizzBuzz — для чисел 1-100 выведите Fizz если делится на 3, Buzz если на 5, FizzBuzz если на оба