一、枚举
Time:O(n)24ms
class Solution {
public:
int mySqrt(int x) {
for (long long i = 1; i <= x; i++) {
if(x==1){
return 1;
}
if (i*i> x) {
return i-1;
}
}
return 0;
}
};
二、二分查找
Time:O(logn)0ms
class Solution {
public:
int mySqrt(int x) {
int left=0,right=x,answer=-1;
while(left<=right){
long long mid=left+(right-left)/2;
if(mid*mid<=x){
answer=mid;
left=mid+1;
}
else
{
right=mid-1;
}
}
return answer;
}
};
三、算法
Time:?0ms
爪巴
class Solution {
public:
int mySqrt(int x) {
return sqrt(x);
}
};