AlgoDesign

Real square root

1import math
2class Solution:
3    def realSquareRoot(self, n):
4        l, r = (1.0, n) if n > 1.0 else (n, 1.0)
5
6        while not math.isclose(l, r):
7            middle = l + (r - l) // 2
8            res = middle * middle
9            if res == n: return middle
10            elif res < n: l = middle
11            elif res > n: r = middle
12        
13        return l
14
15