Сколько раз value встречается в невозрастающем массиве

MediumАлгоритмы
05:00
Лучше работает на десктопе
AlgorithmsBinary SearchBoundaries
Реальный собес27:31-48:122026-02-04 13-14-02.mp3Страница собеса

Дан отсортированный невозрастающе массив values и число target.

Нужно вернуть, сколько раз target встречается в массиве.

Ожидаемое решение — не линейный проход, а два бинарных поиска:

  • найти первую позицию, где элемент <= target;
  • найти первую позицию, где элемент < target;
  • разность этих позиций и есть количество вхождений.

Сигнатура

def count_occurrences_desc(values: list[int], target: int) -> int:

Примеры

Пример 1

Вход:
values = [9,7,7,7,5,3]
target = 7
Выход:3

Пример 2

Вход:
values = [10,10,8,8,8,1]
target = 6
Выход:0

Пример 3

Вход:
values = [5,5,5]
target = 5
Выход:3
Консоль
Нажмите Run или Ctrl+Enter для запуска