Skip to content

Commit d8e4f23

Browse files
34. Find First and Last Position of Element in Sorted Array (java)
1 parent 9577c7b commit d8e4f23

File tree

1 file changed

+30
-0
lines changed
  • solution/0034.Find First and Last Position of Element in Sorted Array

1 file changed

+30
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
class Solution {
2+
public int[] searchRange(int[] nums, int target) {
3+
int start = 0, end = nums.length - 1;
4+
while (start <= end) {
5+
int mid = start + (end - start) / 2;
6+
if (nums[mid] < target) start = mid + 1;
7+
else if (nums[mid] > target) end = mid - 1;
8+
if (nums[mid] == target) {
9+
return new int[]{findFirst(nums, start, mid, target),findEnd(nums, mid, end, target)};
10+
}
11+
}
12+
return new int[]{-1,-1};
13+
}
14+
private int findFirst(int[] nums, int start, int end, int target) {
15+
while (start < end) {
16+
int temp = start + (end - start) / 2;
17+
if (nums[temp] < target) start = temp + 1;
18+
else if (nums[temp] == target) end = temp;
19+
}
20+
return start;
21+
}
22+
private int findEnd(int[] nums, int start, int end, int target) {
23+
while (start < end) {
24+
int temp = start + (end - start + 1) / 2;
25+
if (nums[temp] > target) end = temp - 1;
26+
else if (nums[temp] == target) start = temp;
27+
}
28+
return start;
29+
}
30+
}

0 commit comments

Comments
 (0)