class Solution {
public:
vector<int> searchRange(vector<int>& nums, int target)
{
int l=0;
int h=nums.size()-1;
vector<int> ret;
if( target<nums[l]||target>nums[h] )
{
ret.push_back(-1);
ret.push_back(-1);
return ret;
}
while(l<=h)
{
if(l==h)
{
if(nums[l]!=target)
{
ret.push_back(-1);
ret.push_back(-1);
return ret;
}
else
{
ret.push_back(l);
ret.push_back(h);
return ret;
}
}
int mid=(l+h)/2;
if(nums[mid]==target)
{
int i=mid;
int j=mid;
while(i>=0&&nums[i]==target)
i--;
while(nums[j]==target&&j<=nums.size()-1)
j++;
ret.push_back(i+1);
ret.push_back(j-1);
return ret;
}
if(nums[mid]>target)
{
h=mid-1;
}
else
{
l=mid+1;
}
}
return ret;
}
};
[leetcode]34. Search for a Range
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.