leecode69X的平方根和367有效的完全平方根-题目讲解和代码

代码讲解

~JJH{OR1}@0$WUC{E@46P%F_tmb.jpg

69 源代码

class Solution {
    public int mySqrt(int x) {
        int left=0,right=x/2+1;
        int m=0;
        while(left<=right){
            //易错点1,容易忽略这个当平方比较大的时候会直接超过这个int型数据的范围
            m=(left+right)/2;
            if(1.0*m*m<1.0*x){
                left=m+1;
            }else if(1.0*m*m>1.0*x){
                right=m-1;
            }else return m;
        }
        return right;
    }
}

367 源代码

class Solution {
    public boolean isPerfectSquare(int num) {
        int left=1,right=num/2+1;
        int m=0;
        while(left<=right){
            //与69题的区别是,这一个找不到了就找不到了,上一个找不到你要确定一个最相近的
            m=(left+right)/2;
            if(1.0*m*m<1.0*num){
                left=m+1;
            }else if(1.0*m*m>1.0*num){
                right=m-1;
            }else return true;
        }
        return false;
    }
}
posted @ 2023-07-09 10:38  TranquilGlow  阅读(33)  评论(0)    收藏  举报  来源