题目来源:
leetcode题目,网址:LCR 072. x 的平方根 - 力扣(LeetCode)
解题思路:
二分查找即可。
解题代码:
class Solution {
public int mySqrt(int x) {
long left=0;
long right=x;
while(left<=right){
long mid=left+(right-left)/2;
if(mid*mid<=x){
if((mid+1)*(mid+1)>x){
return (int)mid;
}else{
left=mid+1;
}
}else{
right=mid-1;
}
}
return -1;
}
}
总结:
注意计算乘积时可能会溢出。
官方题解给出了三种解法。第一种是通过数学方法讲平方根转化为对数与指数计算。第二种是二分查找。第三种是牛顿迭代法。