0
点赞
收藏
分享

微信扫一扫

C语言代码(20240125)

40dba2f2a596 2024-10-10 阅读 7
算法

题目描述

题解

采用二分法解决

class Solution {
    public int mySqrt(int x) {
     long left=0;
     long right=x/2;//平方根一定比÷2要小
     while(left<=right){
        long mid=left+(right-left)/2;//防止溢出,就是找中点
        long sqr=mid*mid;
        long sqrnext=(mid+1)*(mid+1);
        if(sqr==x||(sqr<x&&sqrnext>x)){
            return(int) mid;
        }
        else if(sqr<x){
            left=mid+1;
        }
        else{
            right=mid-1;
        }
     }
     return x;
    }
}

 

举报

相关推荐

0 条评论