实现 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;
    }

 

相关文章:

  • 2021-10-26
  • 2022-12-23
  • 2021-09-13
  • 2022-12-23
  • 2018-03-30
  • 2021-09-07
  • 2021-06-25
猜你喜欢
  • 2021-12-28
  • 2022-12-23
  • 2021-05-20
  • 2021-09-01
  • 2022-02-25
  • 2022-02-17
  • 2022-12-23
相关资源
相似解决方案