** 704. 二分查找**
leetcode 打卡Day1
tip : 位运算符的优先级 < 算数运算符
二分查找要点: 区间开闭、mid、left、right
//左闭右闭区间
int search(vector<int>& nums, int target) {
int left = 0, right = nums.size()-1;
int mid;
while (left <= right) {
//位运算 -- 增加效率 相当于 (left + right)/2 的操作
mid = left + ((right - left) >> 1);
if (nums[mid] == target) return mid;
else if (nums[mid] < target) {
left = mid + 1;
}else {
right = mid -1;
}
}
return -1;
}
//左开右开区间
int search(vector<int>& nums, int target) {
int left = 0, right = nums.size()-1;
int mid;
//left == right 无效
while (left < right) {
//位运算 -- 增加效率 相当于 (left + right)/2 的操作
mid = left + ((right - left) >> 1);
if (nums[mid] == target) return mid;
else if (nums[mid] < target) {
left = mid + 1;
}else {
right = mid;
}
}
return -1;
}