leedcode
var searchRange = function(nums, target) {
const findFirst = (arr, bool) => {
debugger
let low = 0
let high = arr.length - 1
while (low < high) {
const mid = bool
? Math.floor((low + high) / 2)
: Math.floor((low + high + 1) / 2)
if (target > arr[mid]) {
low = mid + 1
} else if (target === arr[mid]) {
if (bool) {
high = mid
} else {
low = mid
}
} else {
high = mid - 1
}
}
return arr[low] === target ? low : -1
}
if (nums.length === 0) return [-1, -1]
const first = findFirst(nums, true)
if (first == -1) return [-1, -1]
const last = findFirst(nums, false)
return [first, last]
}