- 题目
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。
- 示例
输入:x = 4
输出:2
- 算法
注释
- 代码
class Solution {
public int mySqrt(int x) {
int left = 1;
int right = x;
while (left <= right) {
int mid = left + (right - left) / 2;
// 如果乘积大于x,就移动right,最后right会停在第一个不满足条件的点
if ((long)mid * mid > x) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return right;
}
}