ps:teflib:binsearch
목차
binsearch.py
minimum_valid_integer
코드
# N minimum_valid_integer
# I {"version": "2.0", "import": ["bisect"], "abc": ["Callable"]}
def minimum_valid_integer(beg: int, end: int, is_valid: Callable[[int],
bool]) -> int:
"""Returns the minimum int X in [beg, end) where is_valid(X) is true."""
if not is_valid(end - 1):
raise ValueError
return bisect.bisect_left(
type('X', (), {'__getitem__': lambda self, x: is_valid(x)})(), True,
beg, end - 1)
설명
이 코드를 사용하는 문제
maximum_valid_integer
코드
# N maximum_valid_integer
# I {"version": "2.0", "import": ["bisect"], "abc": ["Callable"]}
def maximum_valid_integer(beg: int, end: int, is_valid: Callable[[int],
bool]) -> int:
"""Returns the maximum int X in [beg, end) where is_valid(X) is true."""
if not is_valid(beg):
raise ValueError
return bisect.bisect_right(
type('X', (), {'__getitem__': lambda self, x: not is_valid(x)})(),
False, beg, end - 1) - 1
설명
이 코드를 사용하는 문제
ps/teflib/binsearch.txt · 마지막으로 수정됨: 2022/04/22 13:46 저자 teferi
토론