LeetCode 34
Search for a Range
class Solution {
public:
vector<int> searchRange(vector<int>& nums, int target) {
vector<int> res;
if (nums.size() == 0 ) {
res.push_back(-1);
res.push_back(-1);
return res;
}
int low = 0, high = nums.size()-1, mid, flag = 0;
while(low <= high) {
mid = low+(high-low)/2;
if (target == nums[mid]) {
flag = 1;
break;
} else if (nums[mid]>target) {
high = mid-1;
} else {
low = mid+1;
}
}
if (flag == 0) {
res.push_back(-1);
res.push_back(-1);
} else {
int pos = mid;
pos = mid-1;
while(pos >= 0 && nums[pos] == target) {
pos--;
}
int begin = pos+1;
pos = mid+1;
while(pos < nums.size()&&nums[pos] == target) {
pos++;
}
int end = pos-1;
res.push_back(begin);
res.push_back(end);
}
return res;
}
};