题目
示例 1:
输入: x = 4
输出: 2
示例 2:
输入: x = 8
输出: 2
解释: 8 的平方根是 2.82842…,由于小数部分将被舍去,所以返回 2
提示:
0 <= x <= 231 - 1
代码
执行用时:44 ms, 在所有 Python3 提交中击败了64.22% 的用户
内存消耗:14.8 MB, 在所有 Python3 提交中击败了89.31% 的用户
通过测试用例:1017 / 1017
class Solution:
def mySqrt(self, x: int) -> int:
left,right=0,x
while left<=right:
mid=left+(right-left)//2
if mid*mid==x:
return mid
elif mid*mid>x:
right=mid-1
else:
left=mid+1
return right
【方法2】
执行用时:40 ms, 在所有 Python3 提交中击败了82.25% 的用户
内存消耗:14.8 MB, 在所有 Python3 提交中击败了96.10% 的用户
通过测试用例:1017 / 1017
class Solution:
def mySqrt(self, x: int) -> int:
left,right,ans=0,x,-1
while left<=right:
mid=left+(right-left)//2
if mid*mid<=x:
ans=mid
left=mid+1
else:
right=mid-1
return ans