1. 程式人生 > >leetcode x 的平方根 python

leetcode x 的平方根 python

tail 返回 整數 二分查找 pytho 示例 ont itl tle

x 的平方根

實現 int sqrt(int x) 函數。

計算並返回 x 的平方根,其中 x 是非負整數。

由於返回類型是整數,結果只保留整數的部分,小數部分將被舍去。

示例 1:

輸入: 4
輸出: 2

示例 2:

輸入: 8
輸出: 2
說明: 8 的平方根是 2.82842..., 
     由於返回類型是整數,小數部分將被舍去。


這道題如果用python的開方函數那就沒有意思了。所以我手動實現了一下。
我覺著這道題的思想是一個二分查找。
 1 class Solution(object):
 2     def mySqrt(self, x):
 3         """
4 :type x: int 5 :rtype: int 6 """ 7 if x > 1: 8 return self.search(0, x, x) 9 elif x == 1 or x == 0: 10 return x 11 else: 12 pass 13 14 def search(self, start, end, x): 15 mid = int((start + end) / 2)
16 mid2 = mid * mid 17 mid22 = (mid + 1) * (mid + 1) 18 if mid2 <= x < mid22: 19 return mid 20 elif mid2 > x: 21 return self.search(start, mid, x) 22 else: 23 return self.search(mid, end, x)

leetcode x 的平方根 python