在 Python 中查找连续数字排序数组中缺失的元素
pythonserver side programmingprogramming更新于 2025/10/10 20:28:17
假设我们有一个包含 n 个唯一数字的数组 A,这 n 个元素按升序排列在数组中,但有一个缺失的元素。我们必须找到缺失的元素。
因此,如果输入为 A = [1, 2, 3, 4, 5, 6, 7, 9],则输出为 8。
为了解决这个问题,我们将遵循以下步骤 −
n := A 的大小
left := 0
right := n - 1
mid := 0
while right > left ,执行
mid := left +(right - left) / 2
如果 A[mid] - mid 与 A[0] 相同,则
如果 A[mid + 1] - A[mid] > 1,则
返回 A[mid] + 1
否则,
left := mid + 1
否则,
如果 A[mid] - A[mid - 1] > 1,则
返回 A[mid] - 1
否则,
right := mid - 1
返回 -1
示例
让我们看看下面的实现以便更好地理解 −
def search_missing_item(A): n = len(A) left, right = 0, n - 1 mid = 0 while (right > left): mid = left + (right - left) // 2 if (A[mid] - mid == A[0]): if (A[mid + 1] - A[mid] > 1): return A[mid] + 1 else: left = mid + 1 else: if (A[mid] - A[mid - 1] > 1): return A[mid] - 1 else: right = mid - 1 return -1 A = [1, 2, 3, 4, 5, 6, 7, 9] print(search_missing_item(A))
输入
[1, 2, 3, 4, 5, 6, 7, 9]
输出
8
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

