Даны массив целых чисел nums
, который отсортирован в порядке возрастания, и целочисленное target
.
Напишите функцию для поиска target
в nums
. Если target
существует, то верните индекс. В противном случае верните значение -1
.
Нужно написать алгоритм со сложностью во время выполнения O(log n)
.
Входные данные: nums = [-1,0,3,5,9,12], target = 9
Результат: 4
Пояснение: 9
есть в nums
и его индекс 4
Входные данные: nums = [-1,0,3,5,9,12], target = 2
Результат: -1
Пояснение: 2
нет в nums
, поэтому возвращается -1
class Solution {
public:
int search(vector<int>& nums, int target) {
int start = 0;
int end = nums.size()-1;
int mid;
while(start <= end) {
mid = (start + end) / 2;
if(target == nums[mid]) {
return mid;
} else if(target < nums[mid]) {
end = mid-1;
} else {
start = mid + 1;
}
}
return -1;
}
};