Бинарный поиск с дубликатами в отсортированном массиве
Как я могу использовать алгоритм двоичного поиска для отображения дубликатов отсортированного массива со всеми их индексами? У меня есть работающий алгоритм двоичного поиска, но я не могу отобразить все дубликаты. Может ли кто-нибудь помочь и объяснить, как этого можно достичь?
Спасибо.
Что я уже пробовал:
алгоритм поиска:
static int BinarySearch(int[] arr, int key) { int minNum = 0; int maxNum = arr.Length - 1; while (minNum <= maxNum) { int mid = (minNum + maxNum) / 2; if (key == arr[mid]) { return (++mid); } else if (key > arr[mid]) { minNum = mid + 1; } else { maxNum = mid - 1; } } return -1; }