leetcode x 的平方根 python
阿新 • • 發佈:2018-09-11
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