69. x的平方根

问题链接

https://leetcode.cn/problems/sqrtx/description/

解题思路

这个题目,可以用1到x来进行二分。

对照上一题的解题思路,当我们不知道最后应该返回什么的时候,就去想mid == left == right的时候,我们应该返回什么。

代码

class Solution:
    def mySqrt(self, x: int) -> int:
        left, right = 1, x
        while left <= right:
            mid = (left + right) >> 1
            tmp = mid * mid
            if tmp == x:
                return mid
            elif tmp < x:
                left = mid + 1
            else:
                right = mid - 1
        return right

 

posted @ 2023-01-11 16:39  BJFU-VTH  阅读(26)  评论(0编辑  收藏  举报