1 class Solution {
2 public:
3 vector<int> searchRange(int A[], int n, int target) {
4 // IMPORTANT: Please reset any member data you declared, as
5 // the same Solution instance will be reused for each test case.
6 if (n<=0)
7 return vector<int>(2,-1);
8 int l = 0, r = n-1;
9 int m;
10 int left, right;
11 while (l<=r){
12 m = (l+r)/2;
13 if (A[m]>=target)
14 r = m-1;
15 else
16 l = m+1;
17 }
18 if (A[m]==target)
19 left = m;
20 else if (m+1<n && A[m+1]==target)
21 left = m +1;
22 else
23 return vector<int>(2,-1);
24 l = left, r=n-1;
25 while (l<=r){
26 m = (l+r)/2;
27 if (A[m]>target)
28 r=m-1;
29 else l = m+1;
30 }
31 if (A[m]==target)
32 right = m;
33 else if (m-1>=left && A[m-1]==target)
34 right = m-1;
35 vector<int> rlt;
36 rlt.push_back(left);
37 rlt.push_back(right);
38 return rlt;
39 }
40 };