题解 | #求平方根#

求平方根

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

class Solution {
public:
    /**
     * 
     * @param x int整型 
     * @return int整型
     */
    int sqrt(int x) {
        int l = 1, r = x / 2;
        while (l <= r) {
            int m = l + (r - l) / 2;
            long long tar = (long long)m * m;
            if (tar < x) {
                l = m + 1;
            } else {
                r = m - 1;
            }
        }
        return l * l == x? l: r;
    }
};

思路:二分查找。

因为是向下取整,所以查找完后要先判断l是否正好是x的平方根,是则返回l,否则r是x平方根向下取整。

全部评论

相关推荐

只写bug的程序媛:人家说一本以上,不是及以上
点赞 评论 收藏
分享
一天代码十万三:实习东西太少了,而且体现不出你业务,3个月不可能就这点产出吧,建议实习多写点,玩具项目面试官都不感兴趣的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务