题目来源:
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;}
}
总结:
注意计算乘积时可能会溢出。
官方题解给出了三种解法。第一种是通过数学方法讲平方根转化为对数与指数计算。第二种是二分查找。第三种是牛顿迭代法。