x的平方根二分法

57 阅读1分钟
package org.example.demo;  
//x的平方根  
//给你一个非负整数 x ,计算并返回 x 的 算术平方根 。  
//由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。  
public class mySqrtTwoSolution {  
    public int mySqrt(int x){  
        int l=0,r=x,ans=-1;  
        while (l<=r){  
            int mid=l+(r-l)/2;  
            if((long)mid*mid<=x){  
                ans=mid;  
                l=mid+1;  
            }else{  
                r=mid-1;  
            }  
        }  
        return ans;  
    }  
}