Информатика, вопрос задал bakyt24081974 , 1 год назад

ПОМОГИТЕ С ПИТОНОМ Наибольшее произведение двух чисел
Дан список, заполненный произвольными целыми числами. Найдите в этом списке два числа, абсолютное произведение которых максимально. Выведите эти числа в порядке неубывания.
Решение должно иметь сложность O(n), где n - размер списка. То есть сортировку использовать нельзя.
Тест 1
Входные данные:
4 3 5 2 5
Вывод программы:
5 5

Ответы на вопрос

Ответил lingvini2013
1

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))

Принцип решения в том, чтобы убрать все минусы у чисел, взять максимум, сохранить его и удалить из списка, а затем взять ещё один максимум, потом вывести числа в порядке неубывания.


lingvini2013: Скобки просирать - типичная ошибка, тут ясно, тогда так пойдёт?

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)
lingvini2013: (индентация ушла в комментариях)
Новые вопросы