Concept Flow - Maximum Product Subarray
Start at first element
Initialize max_prod, min_prod, result
For each element in array
Calculate candidates: current element, max_prod*element, min_prod*element
Update max_prod = max(candidates)
Update min_prod = min(candidates)
Update result = max(result, max_prod)
Repeat for all elements
Return result
We move through the array, keeping track of the maximum and minimum products ending at each position, updating the overall maximum product found.
