Skip to content

Commit cf08f47

Browse files
authored
Merge pull request #316 from piyush6348/master
First & Last element in sorted Array
2 parents 589a65c + 94b5393 commit cf08f47

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
class Solution {
2+
public:
3+
4+
int lowerBound(vector<int>& nums, int target)
5+
{
6+
int ans = -1;
7+
int s = 0, e = nums.size() - 1;
8+
9+
while(s<=e)
10+
{
11+
int mid = s + (e-s)/2;
12+
if(nums[mid] == target)
13+
{
14+
ans = mid;
15+
e = mid - 1;
16+
}
17+
else if(nums[mid] > target)
18+
e = mid -1;
19+
else
20+
s = mid + 1;
21+
}
22+
return ans;
23+
}
24+
25+
int upperBound(vector<int>& nums, int target)
26+
{
27+
int ans = -1;
28+
int s = 0, e = nums.size() - 1;
29+
30+
while(s<=e)
31+
{
32+
int mid = s + (e-s)/2;
33+
if(nums[mid] == target)
34+
{
35+
ans = mid;
36+
s = mid + 1;
37+
}
38+
else if(nums[mid] > target)
39+
e = mid -1;
40+
else
41+
s = mid + 1;
42+
}
43+
return ans;
44+
}
45+
46+
vector<int> searchRange(vector<int>& nums, int target) {
47+
int lower = lowerBound(nums, target);
48+
int upper = upperBound(nums, target);
49+
vector<int> ans;
50+
ans.push_back(lower);
51+
ans.push_back(upper);
52+
return ans;
53+
}
54+
};

0 commit comments

Comments
 (0)