思路:
targrt 在区间 [ left , right ] 内,确定 middle 的位置,根据 middle 和 target 的大小关系来缩小区间。
class Solution {
public:
int search(vector<int>& nums, int target) {
int left=0,right=nums.size()-1;
while(left<=right) //循环结束条件
{
int middle=left+(right-left)/2;
//target小于middle
if(target<nums[middle])right=middle-1;
//target大于middle
else if(target>nums[middle])left=middle+1;
//target等于middle
else return middle;
}
return -1;
}
};