在Python中查找从错误列表中删除的正确传感器值的程序
假设我们有两个列表nums1和nums2,它们表示传感器度量。每个列表都包含唯一的值,因此a ≠ b。其中一个列表包含精确的传感器指标,但另一个列表包含错误的指标。在错误的列表中删除了一个值,而在该列表的末尾放置了一个错误的值。我们必须找到删除的实际值。
因此,如果输入为nums1 = [5,10,15] nums2 = [10,15,8],则输出将为5,因为第一个列表nums1保存实际值=[5,10,15],在第二个数组中删除了这些值并插入了8。
为了解决这个问题,我们将遵循以下步骤 –
- low := 0
- high := nums1的大小-1
- while low < high,do
- mid:=(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