美文网首页
69. Sqrt(x)

69. Sqrt(x)

作者: Al73r | 来源:发表于2017-10-16 15:08 被阅读0次

    题目

    Implement int sqrt(int x).

    Compute and return the square root of x.

    分析

    主要思想很简单,就用二分法。需要注意的是,当平方根不是整数时,需要向下取整。

    实现

    class Solution {
    public:
        int mySqrt(int x) {
            return solve(x, 0, x);
        }
        int solve(int x, int start, int end){
            if(start>=end-1) return end*end==x ? end : start;
            long long mid = (start + end) / 2;
            if(mid*mid>=x) return solve(x, start, mid);
            else return solve(x, mid, end);
        }
    };
    

    思考

    一开始使用二分搜索的方法写,默认了搜索空间是整数了,导致了一些问题。
    后来想想,其实搜索空间还是实数空间,只是精度为1罢了。

    相关文章

      网友评论

          本文标题:69. Sqrt(x)

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