69. Sqrt(x)

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. 小結(jié)

  1. 整數(shù)開根號
int(x ** 0.5)
  1. 兩個變量同時賦值
錯誤
l = 0, r = x
正確
l, r = 0, x
  1. 兩種除法運(yùn)算符:/、//

關(guān)于/

  • 只要除數(shù)中有一個數(shù)是浮點(diǎn)數(shù),那么得到的結(jié)果也是浮點(diǎn)數(shù)
>>> 3/2
1
>>> 3/2.0
1.5
>>> 3.0/2
1.5
>>> 10/3.0
3.3333333333333335

關(guān)于//

  • 兩個整型相除,得到整型
  • 如果一個浮點(diǎn)數(shù)除以一個非浮點(diǎn)數(shù)得到的還會是一個浮點(diǎn)數(shù),但是,計算的結(jié)果卻是忽略小數(shù)部分
>>> 3//2
1
>>> 3//2.0
1.0
>>> 3.0//2
1.0
>>> 3.0//2.0
1.0

參考:http://www.itdecent.cn/p/9034aafb50aa

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容