您的位置:首页 > 其它

lintcode-搜索区间-61

2015-09-08 23:51 309 查看
给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。

如果目标值不在数组中,则返回
[-1, -1]




样例


给出
[5, 7, 7, 8, 8, 10]
和目标值target=
8
,

返回
[3, 4]


class Solution {

public:

int LowerBound(vector<int> &A,int target){
int y=A.size();
int x=0;
while(x<y){
int mid=x+(y-x)/2;
if(target>A[mid])
x=mid+1;
else
y=mid;
}
return x;
}
vector<int> searchRange(vector<int> &A, int target) {
vector<int> v(2,-1);
if(A.empty())
return v;
bool f=false;
int  i=LowerBound(A,target);
int  end=i;

while(A[end]==target){
++end;
f=true;
}
if(f){
v[0]=i;
v[1]=end-1;
}
return v;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: