각 행이 오름차순으로 정렬된 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