给你一个非负整数 x ,计算并返回 x 的算术平方根
由于返回类型是整数,结果只保留 整数部分 ,小数部分将被舍去
**注意:**不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5
class Solution:
def mySqrt(self, x: int) -> int:
l,r,ans = 0,x,-1
while l <= r:
mid = (l + r) // 2
if mid * mid <= x:
ans = mid
l = mid + 1
else:
r = mid - 1
return ans
总结
本算法是用中间数进行试探,由限制条件来进行重新划分区间



