The following assumest that n >= 5. Find the 3 largest positive
numbers and the two largest-in-magnitude negative numbers (i.e., the
two smallest signed numbers).

If there are not two negative numbers, the 3 largest positive numbers
are the answer.

Otherwise, if there are only one or two positive numbers, the largest
positive number and the two largest-in-magnitude negative numbers are
the answer.

Otherwise, compare the product of the three largest positive numbers
with the product of the largest positive number and the two largest-in-
magnitude negative numbers. The answer is whichever set produces the
largest product.

If the product of the answer set is zero, the answer will not be
uniquely determined.

This can be done in O(n) time and O(1) extra space.

Dave

On Sep 13, 8:34 am, SP Praveen <praveen.sel...@gmail.com> wrote:
> Given an array of integers (signed integers), find three numbers in
> that array which form the maximum product.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/algogeeks
-~----------~----~----~----~------~----~------~--~---

Reply via email to