Question
In computer programming, what is memoization?
Answer
Memoization is the act of pre-computing or pre-processing certain values for the sake of an algorithm's performance. Rather than perform the same exact operation (which could be very complex and computationally expensive) multiple times, memoization will involve writing code to compute it once and store it in memory as a variable. This optimization can allow the call stack to have less to store (e.g., when it circumvents recursion by accessing a variable's value) and you can reduce CPU consumption (by merely having a precomputed variable in memory).
See also pages 132 and 133 of Cracking the Coding Interview or https://en.wikipedia.org/wiki/Memoization