Author
Result
0.1420 s
Code
def find_interval(values: list[int], value: int) -> tuple[int, int]:
def find_left(lst, val):
lo, hi = 0, len(lst)
while lo < hi:
mi = (lo + hi) // 2
if lst[mi] < val:
lo = mi + 1
else:
hi = mi
return lo
def find_right(lst, val):
lo, hi = 0, len(lst)
while lo < hi:
mi = (lo + hi) // 2
if lst[mi] <= val:
lo = mi + 1
else:
hi = mi
return lo
start = find_left(values, value)
end = find_right(values, value)
return (start, end)