Mental Model
Memoization remembers answers to problems we've solved before so we don't repeat work.
Analogy: It's like writing down answers in a notebook when you solve a puzzle, so next time you see the same puzzle, you just look it up instead of solving it again.
call fib(4) ↓ fib(4) -> fib(3) + fib(2) ↓ ↓ fib(3) -> fib(2) + fib(1) fib(2) ↓ ↓ fib(2) -> fib(1) + fib(0) ↓ fib(1) and fib(0) are base cases
