Статья Автор: Лебедев Дмитрий

TUZ_3-08 Первое меньшее число

TUZ_3-08. Первое меньшее число

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]

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


Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать