Что такое memoization?

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

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

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

Задача: reverse linked list — разверните односвязный список