时间复杂度O(logn),避免死循环。
class Solution {
public:
int search(vector<int>& nums, int target) {
int s=0,e=nums.size()-1,mid=0;
while(s+1<e)
{
mid=s+(e-s)/2;
if(nums[mid]==target)
return mid;//若是查找第一个:e=mid;若查找最后一个:s=mid;
else if(nums[mid]<target)
s=mid;
else
e=mid;
}
if(nums[s]==target)
return s;
if(nums[e]==target)
return e;
return -1;
}
};