Глядя на условия: «У меня есть массив в порядке возрастания, состоящий из положительных целых чисел и с дубликатами условий, не допускаются» *
- в порядке возрастания
- положительные целые числа
- без дубликатов
Эта проблема имеет тривиальное решение.
public static int binarysearch(int[] array,int n){
If(a[0] == 1) return 1;
else return -1;
}
Поскольку, если первое число в массиве не равно 1, остальная часть массива не будет иметь любое значение, равное его индексу.
Объяснение:
Предположим, что массив имеет термины a1, a2, a3 ... an, где не слагаемые равны, а aj
Проблема, по сути, заключается в нахождении термина ai, где ai = i
Если a1 не равен 1, он должен быть больше 1 в соответствии с условием # 2.
По условиям 1 и 3, a2 должно быть больше 2. Затем, a3 должно быть больше 3, и так далее. Срок должен быть больше чем n. Не дает решения.
С другой стороны, если a1 равно 1, у вас есть термин, и вы можете его вернуть.