leetcode69:x的平方根

思想:

1.lo=0,hi=v=8.将lo+hi然后除以2并且取整为mid

2.将mid*mid和v进行比较,若mid*mid大于v则hi=mid lo不变,反之lo=mid hi不变。再进行将lo+hi然后除以2并且取整为mid直到lo>hi结束。

3.最后返回hi

class Solution:
    def mySqrt(self, x):
        """
        :type x: int
        :rtype: int
        """
        lo = 0
        hi = x
        while lo <= hi:
            mid = (hi + lo) // 2
            v = mid * mid
            if v < x:
                lo = mid + 1
            elif v > x:
                hi = mid - 1
            else:
                return mid
        return hi

这是大神的想法,下面看看小菜鸟的投机取巧

class Solution:
    def mySqrt(self, x):
        """
        :type x: int
        :rtype: int
        """
        return int(pow(x, 0.5))

哈哈哈哈哈哈哈。直接调用pow函数

猜你喜欢

转载自blog.csdn.net/weixin_43160613/article/details/83047773