美文网首页
69. x 的平方根

69. x 的平方根

作者: bangbang2 | 来源:发表于2020-09-09 17:37 被阅读0次
image.png
求平方根的基础在于二分查找
long mid = (left + right) / 2;//为什么mid要为long,因为midmid可能超出int的范围,mid为long,那midmid也会自动转换为long,这样就保证不会超出int,也可以单独给mid*mid转换为long
二分查找如果找不到刚好相等的平方根,就返回right,而不是mid
最好是自己去试一下,也不是绝对的
image.png
//java
public class Solution {

    public int mySqrt(int x) {
        int left = 0;
        int right = x;
        long mid=0;
        while (left <=right) {
             mid = (left + right) / 2;//为什么mid要为long,因为mid*mid可能超出int的范围,mid为long,那///////////mid*mid//也会自动转换为long,这样就保证不会超出int,也可以单独给mid*mid转换为long
            if (mid * mid == x)
                return (int) mid;
            else if (mid * mid < x)
                left = (int) (mid + 1);
            else
                right = (int) (mid - 1);
        }
        return right;
    }

}


相关文章

网友评论

      本文标题:69. x 的平方根

      本文链接:https://www.haomeiwen.com/subject/lrtyektx.html