实现 int sqrt(int x) 函数。
由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
public int mySqrt(int x) {
long left=0;
long rigth=Integer.MAX_VALUE;
while(left<rigth){
// 这种取中位数的方法又快又好,是我刚学会的,原因在下面这篇文章的评论区
// https://www.liwei.party/2019/06/17/leetcode-solution-new/search-insert-position/
// 注意:这里得用无符号右移动
long mid=(left+rigth+1)>>>1;
long s=mid*mid;
if(s>x){
rigth=mid-1;
}else{
left=mid;
}
}
return (int)left;
}