要考试了,刷一道水题...
有很多方法,牛顿迭代、割线等等,不过只需要整数,所以最快的是二分,使用特殊的整数二分就可以了:
class Solution: def mySqrt(self, x): """ :type x: int :rtype: int """ if x==0: return 0 if x==1: return 1 x1 = 1 x2 = x-1 mid = 0 while x1+1<x2: mid = int((x1+x2)/2) t = mid*mid if t > x: x2 = mid elif t < x: x1 = mid else: return mid return x1