(1)先偏向左二分查找,再偏向右二分查找
class Solution {
private:
vector<int> v={-1,-1};
public:
vector<int> searchRange(vector<int>& nums, int target) {
int left=0,right=nums.size()-1;
int mid=0;
if(right<0) return v;
while(left<right) {
mid=(left+right)/2;
if(nums[mid]<target) left=mid+1;
else right=mid;
}
if(nums[left]!=target) return v;
else v[0]=left;
right=nums.size()-1;
while(left<right) {
mid=(left+right)/2+1;
if(nums[mid]>target) right=mid-1;
else left=mid;
}
v[1]=right;
return v;
}
};