只要求int,二分求解即可....
但是要注意的是,测试集较大,如果在判断的时候比较的是平方的大小很有可能超过int的范围造成错误....所以在比较的时候利用除数的大小关系判断
public class Solution {
public int sqrt(int x) {
if(x==0 || x==1)
{
return x;
}
int begin=0;
int end = x;
int mid=0;
while(begin<=end)
{
mid = (begin+end)/2;
if(((mid+1)>(x/(mid+1)))&&(mid<=x/mid))
{
return mid;
}
else if(mid<x/mid)
{
begin = mid+1;
}
else
{
end = mid-1;
}
}
return -1;
}
}