本题难度:
简单
本题思路:
用二分查找法去搜索合适的平方根,由于只要取整,只要找到临界状态为自身数值^2小于等于目标值x且下一个数值^2大于目标值x,即可得到平方根的整数部分。
本题代码:
/*
作者:zouxuecheng
日期:2024-1-30
思路:二分法
*/
class Solution {
public int mySqrt(int x) {
long left = 1, right = x;
while(left <= right){
long mid = (left + right) / 2;
if(mid*mid <= x){
if((mid + 1)*(mid + 1) > x)
return (int)(mid);
else if((mid + 1)*(mid + 1) == x)
return (int)(mid + 1);
else
left = mid + 1;
}
else{
right = mid - 1;
}
}
return 0;
}
}
本题复杂度:
时间复杂度T(n)=O(logn)
空间复杂度S(n)=O(1)