Find First and Last Position of Element in Sorted Array
MediumArrayBinary Search
Solution
export function searchRange(nums: number[], target: number): number[] {
const search = (num: number) => {
let [start, end] = [0, nums.length];
while (start < end) {
const mid = Math.floor((start + end) / 2);
if (num <= nums[mid]) {
end = mid;
} else {
start = mid + 1;
}
}
return start;
};
const [start, end] = [search(target), search(target + 1) - 1];
if (start <= end) {
return [start, end];
}
return [-1, -1];
}