二分 34
分析:二分模板题,分别查找第一个大于等于的数,在查找第一个小于等于的数
class Solution {
public:
vector<int> searchRange(vector<int>& nums, int target) {
if(!nums.size())
return {-1,-1};
int l=0,r=nums.size()-1;
while(l<r)
{
int mid=l+r>>1;
if(nums[mid]>=target)r=mid;
else l=mid+1;
}
int ans1=(nums[l]==target?l:-1);
l=0,r=nums.size()-1;
while(l<r)
{
int mid=l+r+1>>1;
if(nums[mid]<=target)l=mid;
else r=mid-1;
}
int ans2=(nums[l]==target?l:-1);
return {ans1,ans2};
}
};