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