Алгоритм по поиску максимального произведения трех чисел
Надо найти максимальное произведение трех чисел из массива. Я написал код, но на одном из этапов проверки есть ошибка. Можете помочь, сказав где ошибка (не могу найти сам)
Мой код на python:
def max3(n, arr):
max1 = 0
max2 = 1
max3 = 2
t = 1
while t:
if ((arr[max1] <= arr[max2]) and (arr[max1] <= arr[max2]) and (arr[max1] <= arr[max2])):
t = 0
break
if (arr[max1] > arr[max2]):
max1, max2 = max2, max1
if (arr[max2] > arr[max3]):
max3, max2 = max2, max3
min1 = max1
min2 = max2
for i in range(3, n):
if arr[max3] <= arr[i]:
max1 = max2
max2 = max3
max3 = i
elif arr[max2] <= arr[i]:
max1 = max2
max2 = i
elif arr[max1] <= arr[i]:
max1 = i
if (arr[min1] >= arr[i]):
min2 = min1
min1 = i
elif (arr[min2] > arr[i]):
min2 = i
maxarr = arr[max1] * arr[max2] * arr[max3]
minarr = arr[min1] * arr[min2] * arr[max3]
if maxarr > minarr:
print(maxarr)
else:
print(minarr)
if __name__ == "__main__":
k = int(input())
arr1 = input()
nums = list(map(int, arr1.split(' ')))
max3(k, nums)