34.Search for a Range
class Solution {
public:
vector<int> searchRange(vector<int>& nums, int target) {
vector<int> ret;
ret.push_back(-1);
ret.push_back(-1);
if(nums.size() < 1) return ret;
int l = 0;
int r = nums.size()-1;
while(l+1<r){
int mid =(l+r)>>1;
if(target < nums[mid]) {
r = mid;
} else if(target > nums[mid]) {
l = mid;
} else {
r = mid;
}
}
if(nums[l]==target) {
ret[0] = l;
} else if(nums[r] == target) {
ret[0] =r;
} else {
return ret;
}
l=0;
r=nums.size()-1;
while(l+1<r){
int mid = (l+r)>>1;
if(target < nums[mid]){
r = mid;
} else if(target > nums[mid]) {
l = mid;
} else {
l = mid;
}
}
if(nums[r] == target) {
ret[1] = r;
} else if(nums[l] == target) {
ret[1] = l;
}
return ret;
}
};