Memoization would be the most appropriate optimization technique for a function that performs expensive calculations based on inputs that often repeat. Memoization is a technique that stores the results of function calls and returns the cached result when the same inputs occur again. This is particularly effective for pure functions (functions that always return the same output for a given input), especially those with expensive calculations. By caching results, repeated calls with the same parameters can skip the calculation entirely. Implementation typically involves maintaining a cache object or Map with function parameters as keys and return values as values. Memoization is ideal for algorithms like recursive Fibonacci calculations, complex mathematical operations, or expensive data transformations where the same inputs frequently recur.