0069. Sqrt(x)
Easy | Binary Search | 28 ms (96.39%), 14 MB (97.73%)
Input: x = 4
Output: 2
Input: x = 8
Output: 2
Explanation: The square root of 8 is 2.82842...,
and since the decimal part is truncated, 2 is returned.class Solution:
def mySqrt(self, x: int) -> int:
#: (edge)
if x == 0: return 0
if x < 4: return 1
# ==================================================
# Binary Search + Math =
# ==================================================
# time : O(log(n))
# space : O(1)
l, r = 1, x
while l < r:
mid = (l + r) // 2
num = mid * mid
if num == x: return mid
elif num > x: r = mid
elif num < x: l = mid + 1
return l - 1Last updated