题解 | #求平方根#

求平方根

http://www.nowcoder.com/practice/09fbfb16140b40499951f55113f2166c

二分查找

#
# 
# @param x int整型 
# @return int整型
#
class Solution:
    def sqrt(self , x ):
        # write code here
        if x <= 1:
            return x
        lo, hi = 0, x
        mid = lo + (hi-lo)/2
        while lo < hi:
            mid = lo + (hi-lo)/2
            if mid*mid == x:                
                return mid
            elif mid*mid < x:
                lo = mid+1
                if (mid+1)*(mid+1) >= x:
                    return mid 
            elif mid*mid > x:
                hi = mid-1
                if (mid-1)*(mid-1) <= x:
                    return mid-1 
        return mid
全部评论

相关推荐

浩浩没烦恼:一二面加起来才一个小时? 我一面就一个小时多了
点赞 评论 收藏
分享
09-19 12:15
门头沟学院 Java
迷茫的大四🐶:这下是真的打牌了,我可以用感谢信和佬一起打牌吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务