Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm sự khác biệt tối thiểu giữa hai phần tử từ hai danh sách bằng Python

Giả sử chúng ta có hai danh sách L1 và L2, chúng ta phải tìm sự khác biệt nhỏ nhất giữa một số từ L1 và một số từ L2.

Vì vậy, nếu đầu vào là L1 =[2, 7, 4], L2 =[16, 10, 11], thì đầu ra sẽ là 3, vì sự khác biệt nhỏ nhất là 10 - 7 =3.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • sắp xếp danh sách L1 và sắp xếp danh sách L2
  • ans:=infinity
  • i:=0, j:=0
  • while i
  • ans:=tối thiểu ans và | L1 [i] - L2 [j] |
  • nếu L1 [i]
  • i:=i + 1
  • nếu không,
    • j:=j + 1
  • trả lại ans
  • Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

    Ví dụ

    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))

    Đầu vào

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

    Đầu ra

    3