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

Python의 행렬에서 각 행의 가장 작은 교차 요소를 찾는 프로그램

<시간/>

각 행이 오름차순으로 정렬된 2D 행렬이 있다고 가정합니다. 우리는 모든 행에 존재하는 가장 작은 수를 찾아야 합니다. 그런 결과가 없으면 -1을 반환합니다.

따라서 입력이 다음과 같으면

2 3 5
5 10 10
1 3 5

그러면 출력은 5가 됩니다.

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

  • 행렬이 비어 있으면

    • 반환 -1

  • first :=행렬의 첫 번째 행에서 새 집합

  • 행렬의 각 행에 대해 수행

    • first :=행의 요소 집합을 먼저 교차

    • 첫 번째가 비어 있으면

      • 반환 -1

  • 처음의 최소값을 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

class Solution:
   def solve(self, matrix):
      if not matrix:
         return -1
      first = set(matrix[0])
      for row in matrix:
         first &= set(row)
         if not first:
            return -1
      return min(first)
ob1 = Solution()
matrix = [
   [2, 3, 5],
   [5, 10, 10],
   [1, 3, 5]
]
print(ob1.solve(matrix))

입력

matrix = [
[2, 3, 5],
[5, 10, 10],
[1, 3, 5] ]

출력

5