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

โปรแกรมค้นหาความแตกต่างขั้นต่ำระหว่างสององค์ประกอบจากสองรายการใน Python


สมมติว่าเรามีสองรายการ L1 และ L2 เราต้องหาความแตกต่างที่น้อยที่สุดระหว่างตัวเลขจาก L1 และตัวเลขจาก L2

ดังนั้น หากอินพุตเป็นเหมือน L1 =[2, 7, 4], L2 =[16, 10, 11] ผลลัพธ์จะเป็น 3 เนื่องจากความแตกต่างที่น้อยที่สุดคือ 10 - 7 =3

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

  • เรียงลำดับรายการ L1 และเรียงลำดับรายการ L2
  • ตอบ :=อินฟินิตี้
  • i :=0, j :=0
  • ในขณะที่ i <ขนาด L1 และ j <ขนาด L2 ให้ทำ
    • ans :=ขั้นต่ำของ ans และ |L1[i] - L2[j]|
    • ถ้า L1[i]
    • ผม :=ผม + 1
  • มิฉะนั้น
    • j :=j + 1
  • คืนสินค้า
  • ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

    ตัวอย่าง

    class Solution:
       def solve(self, L1, L2):
          L1.sort()
          L2.sort()
          ans = float("inf")
          i = j = 0
          while i < len(L1) and j < len(L2):
             ans = min(ans, abs(L1[i] - L2[j]))
             if L1[i] < L2[j]:
                i += 1
             else:
                j += 1
          return ans
    ob = Solution()
    L1 = [2, 7, 4] L2 = [16, 10, 11]
    print(ob.solve(L1, L2))

    อินพุต

    [2, 7, 4], [16, 10, 11]

    ผลลัพธ์

    3