69. Sqrt(x)

来源:互联网 发布:mac 黑客帝国屏保 编辑:程序博客网 时间:2024/06/15 12:33

1.二分法解题,最恶心的就是边界问题,为了边界问题基本上都得调试一段时间

  注意,当 x 为 int 时,相乘会越界(大于int的最大数2147483647) ,所以用 相除 代替 相乘

public class Solution {    public int mySqrt(int x) {         if(x<=1) return x;         int left = 1;         int right = x;         int mid = 0;        while(left <=right){            mid = (left + right) / 2;            if(mid == (x / mid)) return mid;            if(mid  < (x / mid)){                left = mid + 1;            }else{                right = mid - 1;            }        }        return right;         } }


原创粉丝点击