Ctrl K
Курс · шаг 61 из 79К шагуДальше

Место на отсортированной полке

Лёгкая
На полке архива стоят папки, их коды записаны в массиве shelf строго по возрастанию, повторов нет. Пришла папка с кодом code. Если папка с таким кодом уже стоит на полке, верните её индекс. Если нет — верните индекс, на который её нужно поставить, чтобы полка осталась отсортированной (все папки начиная с этого места сдвигаются вправо). Индексы считаются с нуля. Уложитесь в O(log n) по времени.
Пример 1
shelf=[-8, 2, 11, 30], code=11 → 2

Код 11 уже стоит на полке — на позиции 2.

Пример 2
shelf=[-8, 2, 11, 30], code=15 → 3

Кода 15 нет; чтобы порядок сохранился, его нужно поставить между 11 и 30, то есть на позицию 3.

Пример 3
shelf=[5, 9], code=-1 → 0

-1 меньше всех кодов на полке, поэтому его место — в самом начале.

Ограничения
  • 1 ≤ shelf.length ≤ 10⁴
  • -10⁴ ≤ shelf[i] ≤ 10⁴
  • Значения в shelf различны и идут по возрастанию
  • -10⁴ ≤ code ≤ 10⁴
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПотерянный билет ЛёгкаяЗначения в обоих списках ЛёгкаяОбщие значения с повторами ЛёгкаяПоиск в упорядоченном списке ЛёгкаяСледующая буква по кругу Лёгкая
загружаем Python…
Вход
shelf=[-8, 2, 11, 30], code=11
Ожидается
2

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 118 тестов на сервере, включая скрытые.