leetcode 69 x的平方根 ---python
阿新 • • 發佈:2018-11-08
實現 int sqrt(int x)
函式。
計算並返回 x 的平方根,其中 x 是非負整數。
由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。
示例 1:
輸入: 4
輸出: 2
示例 2:
輸入: 8
輸出: 2
說明: 8 的平方根是 2.82842...,
由於返回型別是整數,小數部分將被捨去。
1.二分法
class Solution: def mySqrt(self, x): """ :type x: int :rtype: int """ if x == 0: return 0 length = x start = 1 while length >= start: mid = (length + start)//2 if mid **2 <= x < (mid+1)**2: return mid elif mid**2 > x: length = mid else: start = mid
while left <= right:
mid = (left + right) // 2
if x > mid * mid:
left = mid + 1
ans = mid
elif x < mid*mid:
right = mid -1
else:
return mid
return ans
class Solution(object): def mySqrt(self, x): r = x while r*r > x: r = (r + x/r) / 2 #化簡後的公式 return r