Python程序:从错误列表中找出丢失的正确传感器值
假设我们有两个列表nums1和nums2,它们代表传感器指标。每个列表都包含唯一值,因此a≠b。这两个列表中只有一个包含准确的传感器指标,另一个包含错误的指标。在错误的列表中,一个非最后一个值被丢弃,并在列表末尾添加了一个错误的值。我们必须找到实际丢失的值。
因此,如果输入类似于nums1 = [5, 10, 15] nums2 = [10, 15, 8],则输出将为5,因为第一个列表nums1包含实际值 = [5, 10, 15],在第二个数组中,5被丢弃,并在末尾插入了8。
为了解决这个问题,我们将遵循以下步骤:
- low := 0
- high :=
- nums1的大小 - 1
- 当 low < high 时,执行:
- mid := floor((low + high) / 2)
- 如果 nums1[mid] 等于 nums2[mid],则:
- low := mid + 1
- 否则:
- high := mid
- 如果 nums1[low + 1] 等于 nums2[low],则返回 nums1[low];否则返回 nums2[low]
示例
让我们看看下面的实现以更好地理解:
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
广告