Memoization is a technique used in Pure functions (functions in which the same input always returns the same output) to optimize the performance of the functions that take high computational time. The results for the different inputs are cached and the cached results are returned when the same inputs are