美文网首页
69. Sqrt(x)

69. Sqrt(x)

作者: FlyCharles | 来源:发表于2019-03-06 11:29 被阅读0次

1. 我的AC

方法一

  • 超时
class Solution(object):
    def mySqrt(self, x):
        """
        :type x: int
        :rtype: int
        """
        for n in range(x/2 + 1):
            if x >= n ** 2 and x < (n + 1) ** 2:
                return n

方法二

  • 幂符号 ** 0.5
class Solution(object):
    def mySqrt(self, x):
        """
        :type x: int
        :rtype: int
        """
        return int(x ** 0.5)

方法三

  • 二分查找
二分查找.png
class Solution(object):
    def mySqrt(self, x):
        """
        :type x: int
        :rtype: int
        """
        l, r = 0, x
        while l <= r:
            mid = (l + r) // 2
            if x >= mid ** 2 and x < (mid + 1) ** 2:
                return mid
            elif x < mid ** 2:
                r = mid
            else:
                l = mid + 1

2. 小结

  1. 整数开根号
int(x ** 0.5)
  1. 两个变量同时赋值
错误
l = 0, r = x
正确
l, r = 0, x
  1. 两种除法运算符:///

关于/

  • 只要除数中有一个数是浮点数,那么得到的结果也是浮点数
>>> 3/2
1
>>> 3/2.0
1.5
>>> 3.0/2
1.5
>>> 10/3.0
3.3333333333333335

关于//

  • 两个整型相除,得到整型
  • 如果一个浮点数除以一个非浮点数得到的还会是一个浮点数,但是,计算的结果却是忽略小数部分
>>> 3//2
1
>>> 3//2.0
1.0
>>> 3.0//2
1.0
>>> 3.0//2.0
1.0

参考:https://www.jianshu.com/p/9034aafb50aa

相关文章

网友评论

      本文标题:69. Sqrt(x)

      本文链接:https://www.haomeiwen.com/subject/ohczuqtx.html