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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP