#include <iostream>
#include <vector>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @param target int整型
* @return int整型
*/
int search(vector<int>& nums, int target) {
// write code here
if (nums.size() < 1){
return -1;
}
return binarySearch(nums, 0, nums.size(), target);
}
int binarySearch(vector<int>& nums, int start_pivot, int end_pivot, int target) {
if (start_pivot == nums.size()){
return -1;
}
if (start_pivot == end_pivot){
if (nums[start_pivot] == target){
return start_pivot;
}else{
return -1;
}
}
int mid = (end_pivot-start_pivot) / 2;
mid += start_pivot;
if (target == nums[mid]){
return mid;
}
if (target < nums[mid]) {
return binarySearch(nums, start_pivot, mid, target);
}
return binarySearch(nums, mid+1, end_pivot, target);
}
};