假设我们有两个列表 nums1 和 nums2,它们代表传感器指标。每个列表都包含唯一值,因此 a ≠ b。这两个列表中的一个包含准确的传感器指标,但另一个包含错误。在错误列表中,删除了一个不是最后一个值的值,并将错误的值放置在该列表的末尾。我们必须找到被丢弃的实际值。
因此,如果输入类似于 nums1 = [5, 10, 15] nums2 = [10, 15, 8],那么输出将为 5,因为第一个列表 nums1 保存实际值 = [5, 10, 15],在第二个数组中,删除并在末尾插入 8。
让我们看看以下实现以获得更好的理解 -
def solve(nums1, nums2): low, high = 0, len(nums1) - 1 while low < high: mid = (low + high) // 2 if nums1[mid] == nums2[mid]: low = mid + 1 else: high = mid return nums1[low] if nums1[low + 1] == nums2[low] else nums2[low] nums1 = [5, 10, 15] nums2 = [10, 15, 8] print(solve(nums1, nums2))
[5, 10, 15], [10, 15, 8]输出结果
5