leetcode69. x 的平方根 🌟

题目:

  实现 int sqrt(int x) 函数。

  计算并返回 x 的平方根,其中 x 是非负整数。

  由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

示例 1:

  输入: 4
  输出: 2
示例 2:

  输入: 8
  输出: 2
  说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。

来源:力扣(LeetCode)
解答:

class Solution:
    def mySqrt(self, x: int) -> int:
        if x == 1: return 1
        low = 0
        high = x
        while low < high:
            cur = (high + low) // 2
            if cur * cur <= x and (cur + 1) ** 2 > x:
                return cur
            elif cur ** 2 > x:
                high = cur - 1
            else:
                low = cur + 1
        
        return low
View Code

 

posted @ 2019-07-12 22:52  catyuang  阅读(98)  评论(0编辑  收藏  举报