Leetcode 69.x 的平方根(Python3)
阿新 • • 發佈:2018-12-14
69.x 的平方根
實現 int sqrt(int x)
函式。
計算並返回 x 的平方根,其中 x 是非負整數。
由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。
示例 1:
輸入: 4
輸出: 2
示例 2:
輸入: 8
輸出: 2
說明: 8 的平方根是 2.82842...,
由於返回型別是整數,小數部分將被捨去。
自己寫的程式碼:
思想:二分查詢
#sqrtx class Solution: def mySqrt(self, x): if x <= 1: return x low = 1 high = x while low <= high: mid = (low + high) // 2 guess = mid ** 2 if guess == x: return mid elif guess > x : high = mid - 1 else: low = mid + 1 return low - 1
大神的程式碼:
思想:牛頓迭代法,也是該題的思想
class Solution:
def mySqrt(self, x):
"""
:type x: int
:rtype: int
"""
if x <= 1:
return x
r = x
while r > x / r:
r = (r + x / r) // 2
return int(r)
PS:這題import math.sqrt()都能通過,什麼鬼
連結: