题解 | #求平方根#

求平方根

http://www.nowcoder.com/practice/09fbfb16140b40499951f55113f2166c

import java.util.*;


public class Solution {
    /**
     * 
     * @param x int整型 
     * @return int整型
     */
    public int sqrt (int x) {
        // write code here
        //第一思路就是两两乘,二分找
        //但是考虑到向下取整,应该再找一个数来记录最接近的平方值
        if(x<=1){
            return x;
        }
        int left=1;//下标从1开始
        int right=x/2;//提升效率
        int minMid=0;
        
        while(left<=right){
            int mid=left+(right-left)/2;
            if(x/mid>mid){
                left=mid+1;
                minMid=mid;
            }else if(x/mid<mid){
                right=mid-1;
            }else{
                return mid;
            }
        }
        //如果没有返回mid,说明没有完全符合的整数,我们就需要向下取整
        return minMid;
        
    }
}

全部评论

相关推荐

兄弟们你们进大厂靠的是什么项目啊
DOTPHTP:课设改。其实项目什么的如果不是实习里面的生产项目的话,建议✍️那种自己想要做的。突出个人自驱力,而不是为了找工作不得不随波逐流这种
点赞 评论 收藏
分享
04-28 11:34
西北大学 运营
牛客4396号:不好意思,这个照片猛一看像丁真
点赞 评论 收藏
分享
風に薫る:前阵子把一个面试时老托腮抖腿的挂了 太松弛真不行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务