二分查找的重点在于注意区间边界,这里采用的是左闭右闭区间的写法。
class Solution {
public:
int search(vector<int>& nums, int target) {
int left = 0;
int right = nums.size()-1;
while(left<=right){
int mid = (left+right)/2;
if(nums[mid]>target){right=mid-1;}
else if(nums[mid]<target){left=mid+1;}
else{return mid;}
}
return -1;
}
};