如果给定的数组是一个有序递增的数组,并只缺少一个元素,那么可以考虑使用二分查找来解决这个问题。具体来说,可以执行以下步骤: 1. 初始化左右两个指针 left 和 right 分别指向数组的最左和最右边。 2. 在循环中,计算中间位置 mid,并判断 nums[mid] 等于 mid + 1 是否成立。 - 如果成立,则缺失的元素在 mid 的右侧,更新 left = mid + 1。 - 如果不成立,则缺失的元素在 mid 的左侧,更新 right = mid - 1。 3. 循环直到 left > right。 4. 返回缺失的数字,即 left。 实现代码如下: ```javascript function findMissingNumber(nums) { let left = 0; let right = nums.length - 1; while (left <= right) { let mid = Math.floor((left + right) / 2); if (nums[mid] === mid + 1) { left = mid + 1; } else { right = mid - 1; } } return left + 1; } ``` 假设给定的递增数组为 nums,函数 findMissingNumber(nums) 返回缺失的数字。该算法的时间复杂度为 O(log n),其中 n 是数组的长度。