leetcode x 的平方根 python
Posted 稀里糊涂林老冷
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode x 的平方根 python相关的知识,希望对你有一定的参考价值。
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的主要内容,如果未能解决你的问题,请参考以下文章