ПОМОГИТЕ С ПИТОНОМ Наибольшее произведение двух чисел
Дан список, заполненный произвольными целыми числами. Найдите в этом списке два числа, абсолютное произведение которых максимально. Выведите эти числа в порядке неубывания.
Решение должно иметь сложность O(n), где n - размер списка. То есть сортировку использовать нельзя.
Тест 1
Входные данные:
4 3 5 2 5
Вывод программы:
5 5
Answers & Comments
a = list(map(int, input.split()))
for i in range(len(a)):
a[i] = abs(a[i])
m = max(a)
a.pop(a.index(m))
n = max(a)
print(min(m, n), max(m, n))
Принцип решения в том, чтобы убрать все минусы у чисел, взять максимум, сохранить его и удалить из списка, а затем взять ещё один максимум, потом вывести числа в порядке неубывания.
a = list(map(int, input().split()))
max_item1, max_item2 = 0, 0
for item in list:
if abs(item) >= max_item1:
max_item1 = item
max_item2 = max_item1
print(max_item1 * max_item2)