algo-grind/leetcode/69_sqrtx.py
2022-08-31 12:00:11 +02:00

27 lines
617 B
Python

import pytest
class Solution:
def mySqrt(self, x: int) -> int:
left, right = 0, x
while left <= right:
mid = left + (right - left) // 2
val = mid * mid
if val <= x < (mid + 1) * (mid + 1):
return mid
elif x < val:
right = mid - 1
else:
left = mid + 1
return 0
@pytest.fixture
def solution():
return Solution()
@pytest.mark.parametrize("x, expected", [(4, 2), (8, 2)])
def test_my_sqrt(solution: Solution, x: int, expected: int):
assert solution.mySqrt(x) == expected