1、此题应该利用binary search 的方法
class Solution(object):
def mySqrt(self, x):
"""
:type x: int
:rtype: int
"""
l,r = 0,x
mid = (1+x)/2
while l<=r:
if(mid*mid <=x < (mid+1)*(mid+1)):
return mid
elif mid*mid >x:
r=mid-1
else:
l=mid+1
mid = (l+r)/2
最后一句很关键,可以放在while循环里,也可以放在if前面,要有新的mid、新的l r、迭代变化。