Ctrl K

k-й непроданный билет

Лёгкая
Билеты лотереи пронумерованы натуральными числами 1, 2, 3, … без верхней границы. Список sold — номера уже проданных билетов, он строго возрастает. Верните номер k-го по счёту непроданного билета, если перебирать номера по возрастанию. Прямой перебор работает за O(n + k); попробуйте найти ответ быстрее, чем за линейное время.
Пример 1
sold=[1, 3, 4, 8], k=3 → 6

Свободны номера 2, 5, 6, 7, 9, … Третий из них — 6.

Пример 2
sold=[1, 2, 3], k=2 → 5

Первые три номера заняты подряд, свободные начинаются с 4: 4, 5, … Второй — 5.

Пример 3
sold=[6, 9], k=4 → 4
Ограничения
  • 1 ≤ len(sold) ≤ 10⁵
  • 1 ≤ sold[i] ≤ 10⁹
  • sold[i] < sold[i + 1]
  • 1 ≤ k ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМесто на отсортированной полке ЛёгкаяПотерянный билет ЛёгкаяЗначения в обоих списках ЛёгкаяОбщие значения с повторами ЛёгкаяПоиск в упорядоченном списке Лёгкая
загружаем Python…
Вход
sold=[1, 3, 4, 8], k=3
Ожидается
6

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