计算并返回x的平方根整数部分,其中x是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2
时间: 2023-06-15 20:06:04 浏览: 159
python 输入非负整数n计算n! 示例
您可以使用二分查找的方法来计算非负整数x的平方根。具体实现步骤如下:
1. 定义左指针left为0,右指针right为x。
2. 在while循环中,当left小于等于right时,执行以下操作:
- 定义中间指针mid为(left+right)/2。
- 如果mid的平方小于等于x,说明mid可能是x的平方根,将left指向mid+1。
- 如果mid的平方大于x,说明mid不可能是x的平方根,将right指向mid-1。
3. 循环结束后,返回right作为结果,因为right是小于等于x的最大平方根。
以下是Python代码实现:
```
class Solution:
def mySqrt(self, x: int) -> int:
if x == 0:
return 0
left, right = 1, x
while left <= right:
mid = (left + right) // 2
if mid * mid == x:
return mid
elif mid * mid < x:
left = mid + 1
else:
right = mid - 1
return right
```
这里需要注意以下几点:
- 当x等于0时,返回0。
- 在while循环中,使用left <= right 作为循环条件。
- 在循环结束后,返回right作为结果,而不是mid,因为mid有可能大于x的平方根。
阅读全文