Это только теоретические соображения, но если числа отсортированы 1,2,3...1B
, так что вы можете просто разбить свою группу номеров на части 1 ... 0.5B
и 0.5B ... 1B
, тогда проверьте, сколько элементов в первой группе: если их меньше чем 0.5B
элементов, что означает, что пропущенное значение находится между 1
и 0.5B
, если есть 0.5B
элементов, это означает, что пропущенное значение находится между 0.5B
и 1B
. Продолжайте процесс, пока не найдете пропущенное значение.
Я не знаю, является ли это очень быстрым способом, но он определенно быстрее, чем проверка каждого значения: D
Может быть, это ставит вас в путь