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

BFE.devAI解答 - JavaScript 代码题
10. 找出第一个不良版本

解答:

这是一个典型的二分查找题目,可以运用二分查找的思路进行解答。

我们假设最后一个版本是n,二分查找需要确定一个左右边界,初始的左边界是1,右边界是n。每次二分查找会将中间的版本mid传入isBad函数中,如果返回值是true,说明有bug,我们需要继续在左侧寻找;否则说明没有bug,我们需要继续在右侧寻找。这样循环进行,直到左右边界相等,返回左边界即可。

如果遍历完整个程序还没有找到坏掉的版本,则返回-1。

参考代码:

function firstBadVersion(n) {  let left = 1;  let right = n;  while (left < right) {    const mid = Math.floor((left + right) / 2);    if (isBadVersion(mid)) {      right = mid; // 还在左侧寻找    } else {      left = mid + 1; // 在右侧寻找    }  }  return isBadVersion(left) ? left : -1;}