用 Python 编写程序从错误列表中查找丢失的正确传感器值
pythonserver side programmingprogramming更新于 2026/1/18 22:04:17
假设我们有两个列表 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,执行
- mid := floor of (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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/
打印 下一节:Python Pandas - 从具有特定时间序列频率的 DateTimeIndex 中提取星期几 ❯❮ 上一节:Python Pandas - 从具有特定时间序列频率的 DateTimeIndex 中提取一年中的序数日

