以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!

BFE.devAI解答 - JavaScript 代码题
103. 实现Math.sqrt()

实现代码如下:

function mySqrt(x) {  if (isNaN(x) || x < 0) {    return NaN;  }  let left = 0;  let right = x;  while (left <= right) {    let mid = Math.floor((left + right) / 2);    let square = mid * mid;    if (square === x) {      return mid;    } else if (square < x) {      left = mid + 1;    } else {      right = mid - 1;    }  }  return right;}

该代码的时间复杂度为 O(log n),空间复杂度为 O(1)。可以进一步优化,例如使用牛顿迭代法实现平方根,时间复杂度可以达到 O(log log n),但实现比较复杂,不在本题范围内。