Concept Flow - Maximum Product Subarray
Start with first element
Initialize max_prod, min_prod, result
For each next element
Calculate temp max and min products
Update max_prod and min_prod
Update result if max_prod is greater
Repeat until end of array
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.