Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหาค่าเซ็นเซอร์ที่ถูกต้องลดลงจากรายการที่ผิดพลาดใน Python


สมมติว่าเรามีรายการ nums1 และ nums2 สองรายการ ซึ่งแสดงถึงเมตริกของเซนเซอร์ แต่ละรายการมีค่าที่ไม่ซ้ำกัน ดังนั้น a ≠ b หนึ่งในสองรายการนี้มีเมตริกเซ็นเซอร์ที่แม่นยำ แต่อีกรายการหนึ่งมีข้อผิดพลาด ในรายการผิดพลาดค่าหนึ่ง ที่ไม่ใช่ค่าสุดท้ายที่ถูกทิ้ง และค่าที่ไม่ถูกต้องถูกวางไว้ที่ส่วนท้ายของรายการนั้น เราต้องหามูลค่าที่แท้จริงที่ลดลง

ดังนั้น หากอินพุตเป็น nums1 =[5, 10, 15] nums2 =[10, 15, 8] ผลลัพธ์จะเป็น 5 เนื่องจากรายการแรก nums1 มีค่าจริง =[5, 10, 15], ในอาร์เรย์ที่สองที่ลดลงและ 8 ถูกแทรกในตอนท้าย

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ต่ำ :=0
  • สูง :=
  • ขนาดของ nums1 - 1
  • ในขณะที่ต่ำ <สูง ทำ
    • กลาง :=ชั้นของ (ต่ำ + สูง) / 2
    • ถ้า nums1[mid] เหมือนกับ nums2[mid] แล้ว
      • ต่ำ :=กลาง + 1
    • มิฉะนั้น
      • สูง :=กลาง
  • ส่งคืน nums1[low] หาก nums1[low + 1] เหมือนกับ nums2[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