/** * @param {number}x * @return {number} */ var mySqrt = function (x) { let i = 0; while (i <= x) { if (i * i > x) { return i - 1; } elseif (i * i == x) return i; i++; } return x; };
代码实现:二分法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
var mySqrt = function (x) { let l = 0, r = x; ans = -1; while (l <= r) { let mid = (l + (r - l) / 2) >> 0; if (mid * mid <= x) { ans = mid; l = mid + 1; } else { r = mid - 1; } } return ans; };