-
Notifications
You must be signed in to change notification settings - Fork 0
/
greatest_product_.py
39 lines (31 loc) · 1.34 KB
/
greatest_product_.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from typing import List
def greatest_product(array: List[int]) -> int:
"""
Find the greatest product that can be made from two numbers in the array.
Args:
array (List[int]): The array of numbers.
Returns:
int: The greatest possible product.
"""
greatest_number = float('-inf')
second_to_greatest_number = float('-inf')
lowest_number = float('inf')
second_to_lowest_number = float('inf')
for number in array:
if number >= greatest_number:
second_to_greatest_number = greatest_number
greatest_number = number
elif number > second_to_greatest_number:
second_to_greatest_number = number
if number <= lowest_number:
second_to_lowest_number = lowest_number
lowest_number = number
elif number > lowest_number and number < second_to_lowest_number:
second_to_lowest_number = number
greatest_product_from_two_highest = greatest_number * second_to_greatest_number
greatest_product_from_two_lowest = lowest_number * second_to_lowest_number
# return max(greatest_product_from_two_highest, greatest_product_from_two_lowest)
if greatest_product_from_two_highest > greatest_product_from_two_lowest:
return greatest_product_from_two_highest
else:
return greatest_product_from_two_lowest