Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 두 목록에서 두 요소 간의 최소 차이를 찾는 프로그램

<시간/>

두 개의 목록 L1과 L2가 있다고 가정하고 L1의 숫자와 L2의 숫자 사이에서 가장 작은 차이를 찾아야 합니다.

따라서 입력이 L1 =[2, 7, 4], L2 =[16, 10, 11]과 같으면 가장 작은 차이가 10 - 7 =3이므로 출력은 3이 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 목록 L1 정렬 및 목록 L2 정렬
  • ans :=무한대
  • i :=0, j :=0
  • i
  • 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