二分查找笔记
class Solution {
public:
int search(vector<int>& nums, int target) {
int low = 0 ;
int high = nums.size()-1; //记得长度减1
while(low <= high){
int mid = low + ( (high-low) /2 ) ; //等价于(low+high)/2
if(target < nums[mid])
high = mid- 1;
else if (target > nums[mid])
low = mid + 1;
else
return mid;
}
return -1;
}
};
int mid = low + ( (high-low) /2 ) ; //等价于(low+high)/2
用(low+high)/2有可能会导致溢出,所以换成上述方式。