Дан целочисленный массив nums
, отсортированный в порядке возрастания (с уникальными значениями).
Перед передачей в вашу функцию массив nums
мог быть повернут на неизвестный индекс поворота k (1 <= k < nums.length)
таким образом, что получившийся массив имеет вид [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]]
(индексация с нуля). Например, массив [0,1,2,4,5,6,7]
мог быть повернут на индексе 3
и стать [4,5,6,7,0,1,2]
.
Учитывая массив nums
после возможного поворота и целое число target
, верните индекс target
, если он есть в массиве nums
, или -1
, если его там нет.
Вы должны написать алгоритм с временной сложностью O(log n)
.
Пример 1:
Ввод: nums = [4,5,6,7,0,1,2], target = 0
Вывод: 4
Пример 2:
Ввод: nums = [4,5,6,7,0,1,2], target = 3
Вывод: -1
Пример 3:
Ввод: nums = [1], target = 0
Вывод: -1
Ограничения:
1 <= nums.length <= 5000
-10^4 <= nums[i] <= 10^4
Все значения в nums
уникальны.
nums
— это отсортированный по возрастанию массив, который мог быть повернут.
-10^4 <= target <= 10^4
Отметьте свой прогресс
Сообщить об ошибке в тексте