给定一个排序数组nums(nums中有重复元素)与目标值target,如果target在nums里出现,则返回target所在区间的左右端点下标,[左端点,右端点],如果target在nums里未出现,则返回[-1,-1]。
例如:
下标 =[0,1, 2,3,4, 5,6, 7]
nums=[5, 7,7, 8,8,8,8,10]
targe=8,则返回[3,6]
target=6, 则返回[-1,-1]
#include<vector>
class Solution
{
public:
Solution() {
}
~Solution() {
}
std::vector<int> searchRange(std::vector<int> &nums, int target)
{
std::vector<int> result;
result.push_back(left_bound(nums, target));
result.push_back(right_bound(nums, target));
return result;
}
private:
int left_bound(std::vector<int>& nums, int target)
{
int begin = 0;
int end = nums.size()