Files
leetcode/34.find-first-and-last-position-of-element-in-sorted-array.java
2025-10-28 15:52:13 +08:00

53 lines
1.2 KiB
Java

/*
* @lc app=leetcode id=34 lang=java
*
* [34] Find First and Last Position of Element in Sorted Array
*/
// @lc code=start
class Solution {
public int[] searchRange(int[] nums, int target) {
if(nums==null || nums.length == 0) {
return new int[]{-1, -1};
}
return new int[] {
firstEq(nums, target),
lastEq(nums, target)
};
}
private int firstEq(int[] nums, int target) {
int l = 0, r = nums.length-1, m, v=-1;
while(l <= r) {
m = l + (r-l)/2;
if(nums[m] < target) {
l = m + 1;
} else if(nums[m] > target) {
r = m - 1;
} else {
v = m;
r = m-1;
}
}
return v;
}
private int lastEq(int[] nums, int target) {
int l = 0, r = nums.length-1, m, v=-1;
while(l<=r) {
m = l + (r-l)/2;
if(nums[m] > target) {
r = m - 1;
} else if(nums[m] < target) {
l = m + 1;
} else {
v = m;
l = m + 1;
}
}
return v;
}
}
// @lc code=end