Найдите два максимальных числа в массиве произвольных целых чисел без использования вложенных циклов. Входные данные

Найдите два максимальных числа в массиве произвольных целых чисел без использования вложенных циклов. Входные данные: программа получает на вход значение n≤50000 - количество элементов в массиве. В следующей строке входных данных расположены сами элементы массива - целые числа, по модулю не превосходящие 30000. Выходные данные: выведите два искомых числа в порядке возрастания.
Мирослав

Мирослав

Для решения данной задачи без использования вложенных циклов, мы можем применить следующий алгоритм:

1. Инициализируем две переменные `max1` и `max2` с наименьшим возможным значением (например, `-30001`).
2. Считываем количество элементов в массиве `n`.
3. Считываем сами элементы массива `arr`.
4. Проходим по всем элементам массива и проверяем каждый элемент.
5. Если текущий элемент больше `max1`, то присваиваем значение `max1` текущему элементу, а предыдущее значение `max1` присваиваем `max2`.
6. Если текущий элемент между `max1` и `max2`, то присваиваем значение `max2` текущему элементу.
7. Выводим значения `max2` и `max1` в порядке возрастания.

Вот подробное решение задачи:

python
n = int(input("Введите количество элементов в массиве: "))
arr = list(map(int, input("Введите элементы массива через пробел: ").split()))

max1 = -30001
max2 = -30001

for num in arr:
if num > max1:
max2 = max1
max1 = num
elif num > max2:
max2 = num

print("Два максимальных числа в порядке возрастания:", max2, max1)


Данный код считывает количество элементов в массиве `n`, затем считывает сами элементы массива `arr`. Далее происходит проход по элементам массива и определение двух максимальных чисел.

Например, если у нас есть массив `[10, 20, 5, 25, 15]`, то результатом работы данного кода будет вывод: `Два максимальных числа в порядке возрастания: 20 25`.
Знаешь ответ?
Задать вопрос
Привет!
hello