TUZ_3-08. Первое меньшее число
Пусть есть массив, заполненный положительными целыми числами.
В этой задаче вы должны для каждого числа найти первое меньшее число в массиве, и если меньшего числа нет,
то число должно остаться неизменным.
Например, рассмотрим массив array = [2, 77, 13, 1].
- Первое число равно 2, и слева от него нет никакого другого числа, поэтому рассматривается часть массива справа.
Справа есть число 1, которое меньше 2, поэтому [2, 77, 13, 1] → [1].
- Следующее число равно 77. Слева от него имеется число 2, а справа – число 1.
Число 1 меньше, но 2 – это первое меньшее число, поэтому [2, 77, 13, 1] → [1, 2].
- Следующее число – 13, и первое меньшее число – 1, поэтому [2, 77, 13, 1] → [1, 2, 1].
- Следующее число – 1. Меньше его нет чисел в массиве, поэтому оно перекочевывает в результат: [1, 2, 1, 1].
Ваша задача: написать функцию, которая принимает массив положительных целых чисел и возвращает массив чисел,
каждый элемент которого является первым числом, меньше соответствующего числа во входном массиве.
В табл. 3.8 показаны ожидаемые результаты для некоторых входных данных.
Таблица 3.8. Некоторые ожидаемые результаты для задачи выбора первых меньших чисел |
Array |
Ожидаемый результат |
[8, 6, 16, 1921, 17] |
[6, 6, 6, 16, 16] |
[2, 3, 4, 871] |
[2, 2, 3, 4] |
[1,77,7, 770, 700, 11] |
[1, 1, 1, 7, 11, 7] |
[6, 8, 9, 888, 1401, 1402] |
[6, 6, 8, 9, 888, 1401] |