Datawhale leetcode day1 NO.69_x 的平方根
一个数 x 的开方 sqrt 一定在 0 ~ x 之间,并且满足 sqrt == x / sqrt 。可以利用二分查找在 0 ~ x 之间查找 sqrt。
class Solution:
def mySqrt(self, x: int) -> int:
if x <= 1:
return x;
l = 1;
h = x;
while l <= h:
mid = l + (h - l) // 2;
sqrt = x / mid;
if sqrt == mid:
return mid;
else:
if sqrt < mid:
h = mid - 1;
else:
l = mid + 1;
return h;
思想就是if :,说明,要让变小一点,于是;,下次;的时候才会变小,
同理if :,说明了,要让变大一点,于是;,当两个界和重叠时,即,那么此时的是大于且最近接的数,于是即为所求。
最后必将收敛到的形式,因为x会夹在两个平方数和之间,最后,对应,,return 正合适