Skip to content

Commit a211db0

Browse files
committed
Add memoization
1 parent 57442d0 commit a211db0

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

‎INTERVIEW_QUESTION/memoization.js‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
function sum(num) {
2+
let sum = 0;
3+
for (let i = 1; i <= num; i++) {
4+
sum += i;
5+
}
6+
return sum;
7+
}
8+
9+
function memoizeSum(func) {
10+
const cache = {};
11+
return function (...args) {
12+
const arg = args[0];
13+
if (cache[arg]) {
14+
console.log("PRESENT IN CACHE");
15+
return cache[arg];
16+
} else {
17+
console.log("CALCULATING...");
18+
const result = func(arg);
19+
cache[arg] = result;
20+
return result;
21+
}
22+
};
23+
}
24+
25+
const memoizedSum = memoizeSum(sum);
26+
27+
console.time();
28+
console.log(memoizedSum(5));
29+
console.timeEnd();
30+
31+
console.time();
32+
console.log(memoizedSum(5));
33+
console.timeEnd();

0 commit comments

Comments
 (0)