LeetCode题解——x 的平方根
- 题目介绍
- 解题思路
- 方法一:i取值从1开始,用i平法结果与目标x对比,当i+1>x,那么i就是目标值
- 方法二:二分法,每次用中间值与x比较,当右边是大于x的值,当跳出循环,那么right的平方就是无限逼近x的那个,返回right-1就是最后结果
- 代码示例
class Solution {
public:
int mySqrt(int x) {
if(0 == x || 1 == x){
return x;
}
int right = x;
int left = 0;
while(left<right){
long mid = (right+left)/2;
if(mid*mid == x){
return mid;
}else if(mid*mid > x){
right = mid;
}else{
left = mid+1;
}
}
return left-1;
}
};