class Solution {
public:
int search(vector<int>& nums, int target) {
int left=0;
int right=nums.size()-1;
while (left<=right)
{
int middle = (left+right)/2;
if (nums[middle]<target)
{
left = middle+1;
}
else if(nums[middle]>target)
{
right = middle-1;
}
else if(nums[middle] == target)
{
return middle;
}
}
return -1;
}
};
先定义左右坐标,然后定义中间值,如果target>中间值,更新左坐标,反之更新右坐标,直到查找到为止。循环条件为左坐标<右坐标。