@StefanPochmann

Aha, here is my thinking process. When A[0] < 0 < A[-1], we know A[-1] is the maximum positive number and A[0] is the minimum negative number in the array. Then, if A[1] is negative, one possible answer can be A[0] * A[1] * A[-1].

And for the case when A[1] is positive, A[0] * A[1] is negative and we wanna keep the three number product as small as possible by multiply another smallest number A[2]. For example, the sorted A is [-1,1,2].

Wait a second, the example above actually within the answer A[-3]*A[-2]*A[-1]... Why are you so smart, Stefan.