Найдите два числа в списке заполненном произвольными целыми числами, которые имеют максимальное абсолютное

  • 34
Найдите два числа в списке заполненном произвольными целыми числами, которые имеют максимальное абсолютное произведение. Выведите эти числа в порядке неубывания. Решение должно иметь сложность O(n), где n - размер списка. Сортировку использовать нельзя.

Тест 1.
Входные данные: 4 3 5 2 5.
Вывод программы: 5 5.
Михайлович
32
Чтобы найти два числа в списке с максимальным абсолютным произведением, нужно выполнить следующие шаги:

1. Инициализируйте две переменные, которые будут содержать два максимальных числа. Назовем их max1 и max2. В начале задайте им минимально возможные значения, например, -∞.

2. Пройдитесь по всем элементам списка и выполните следующие действия:
a. Если текущий элемент больше max1, обновите значения max2 и max1. Новое значение max1 будет равно текущему элементу, а новое значение max2 будет равно старому значению max1.
b. Если текущий элемент находится между max1 и max2, обновите значение max2 текущим элементом.

3. После прохода по всем элементам списка, у вас будут два числа (max1 и max2) с максимальным абсолютным произведением.

Применим этот алгоритм к данным, которые вы предоставили (4 3 5 2 5):

- Инициализируем max1 и max2 со значениями -∞.
- Пройдемся по всем элементам списка:
- 4 больше -∞, поэтому устанавливаем max1 = 4 и max2 = -∞.
- 3 находится между -∞ и 4, поэтому устанавливаем max2 = 3.
- 5 больше 4, поэтому обновляем max1 = 5 и max2 = 4.
- 2 находится между 4 и 5, поэтому обновляем max2 = 2.
- 5 больше 2, поэтому обновляем max1 = 5 и max2 = 2.

- После окончания прохода, у нас есть два числа с максимальным абсолютным произведением - 5 и 4.

Таким образом, ваша программа должна вывести числа 4 и 5 в порядке неубывания.