剑指 Offer II 072. 求平方根

189 阅读1分钟

剑指 Offer II 072. 求平方根

自带方法

var mySqrt = function(x) {
    return Math.pow(x,0.5) >> 0
};

使用数学公式理解 xx^2 <= c,且x+1x+1^2 >c,说明满足题目要求的就是x

var mySqrt = function (c) {
    var left = 1
    var right = c;
    while (left <= right) {
        var x = left + ((right - left) >> 1);
        if (x <= c / x) {
            if (x + 1 > c / (x + 1)) {
                return x;
            }
            left = x + 1;
        } else {
            right = x - 1;
        }
    }
    return 0;
};