二分查找
题目:
给定一个整型有序数组nums和一个目标之target,写一个搜索函数搜索target,如果存在则返回target在数组中的下下标,如果target不存在,返回-1。
代码
思路:
- 采取闭区间[left,right]写法
 - while (left <= right) 要使用 <= ,因为left == right是有意义的,所以使用 <=
 - if (nums[middle] > target) right 要赋值为 middle - 1,因为当前这个nums[middle]一定不是target,那么接下来要查找的左区间结束下标位置就是 middle - 1
 
复杂度:
- 时间复杂度:O(log n)
 - 空间复杂度:O(1)
 
1  | int search::solution(vector<int>&nums,int target)  |