#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); } };