Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 3x 3x 1x 2x 2x 2x 6x 6x 4x 2x 2x 2x 1x 1x 1x 1x 3x 3x 2x 1x 1x 1x | export default function searchRange(nums: number[], target: number): number[] {
const ans = [-1, -1]
if (nums.length === 0)
return ans
let lo = 0
let hi = nums.length - 1
while (lo < hi) {
const mid = (lo + hi) >> 1
if (nums[mid] >= target)
hi = mid
else lo = mid + 1
}
if (nums[hi] !== target)
return ans
ans[0] = hi
lo = 0
hi = nums.length - 1
while (lo < hi) {
const mid = (lo + hi + 1) >> 1
if (nums[mid] <= target)
lo = mid
else hi = mid - 1
}
ans[1] = hi
return ans
}
|