javascript / intermediate
Snippet
Implementierung eines einfachen Memoization-Caches
Memoization ist eine Technik zur Optimierung von Funktionen, indem Ergebnisse basierend auf den Eingabeargumenten zwischengespeichert werden. Bei teuren rekursiven Operationen kann dies die Zeitkomplexität massiv senken.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const memoize = (fn) => {const cache = new Map();return (...args) => {const key = JSON.stringify(args);if (cache.has(key)) return cache.get(key);const result = fn(...args);cache.set(key, result);return result;};};const fibonacci = memoize((n) => {return n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);});
nodejs
Erklärung
1
const cache = new Map();
Nutzt eine Map, um Ergebnisse vorheriger Funktionsaufrufe zu speichern.
2
const key = JSON.stringify(args);
Generiert einen eindeutigen Cache-Schlüssel basierend auf den Eingabeargumenten.
3
if (cache.has(key)) return cache.get(key);
Gibt den vorkalkulierten Wert zurück, falls er bereits im Cache existiert.