target в последовательности так:
1. Пока последовательность не пуста, выбирается **случайный** её элемент — ориентир.
2. Если ориентир равен target, поиск успешен.
3. Если ориентир меньше target, из последовательности удаляются ориентир и всё, что левее него.
4. Если ориентир больше target, удаляются ориентир и всё, что правее него.
5. Если последовательность опустела, поиск неудачен.
Дан массив values из попарно различных целых чисел, необязательно отсортированный. Посчитайте, сколько чисел из values эта функция находит **при любом** выборе ориентиров.values=[2, 1, 3, 5, 4] → 1
Только 3 больше всех чисел слева от себя и меньше всех справа. Какой бы ориентир ни выпал, 3 никогда не окажется в отброшенной части. Например, 2 при поиске 1 не найдётся: если первым выпадет 2, вместе с ней уйдёт и всё правее, то есть сама 1.
values=[-4, 0, 9] → 3
Список уже упорядочен, поэтому поиск надёжен для каждого из трёх чисел.
values=[6, 5, 4] → 0
Каждое число может потеряться: например, при поиске 6 первым может выпасть 4 — она меньше цели, и вместе с ней отбрасывается всё левее, включая 6.
values различныvalues=[2, 1, 3, 5, 4]
1
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 133 теста на сервере, включая скрытые.