LeetCode704 二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
基础的二分查找,唯一需要注意的就是移位运算的优先级很低,需要加括号。
1 class Solution { 2 public: 3 int search(vector<int>& nums, int target) { 4 return recursive(nums,0,nums.size()-1,target); 5 } 6 7 int recursive(vector<int>& nums, int start, int end, int target){ 8 if(start>end) 9 return -1; 10 int mid=start+((end-start)>>1); 11 if(nums[mid]==target) 12 return mid; 13 else if(nums[mid]>target) 14 return recursive(nums,start,mid-1,target); 15 else 16 return recursive(nums,mid+1,end,target); 17 } 18 19 };