Mental Model
We want to find the largest product of a continuous part of the array. Because multiplying negatives can flip signs, we keep track of both the biggest and smallest products so far.
Analogy: Imagine walking on a path where stepping on a slippery stone (negative number) can flip your direction. To reach the farthest point (maximum product), you remember both your farthest forward and backward steps because a backward step might help you jump forward later.
Array: [2] -> [-3] -> [4] -> [-1] -> [0] -> [5] Tracking max_prod and min_prod at each step
