m x m 차수의 정방 행렬이 있다고 가정합니다. 주어진 행렬의 모든 행에 공통적인 모든 고유한 요소를 찾아야 합니다.
따라서 입력이 다음과 같으면
13 | 2 | 15 | 4 | 17 |
15 | 3 | 2 | 4 | 36 |
15 | 2 | 15 | 4 | 12 |
15 | 26 | 4 | 3 | 2 |
2 | 19 | 4 | 22 | 15 |
출력은 [2,4,15]
가 됩니다.이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
sortRows() 함수를 정의합니다. 매트릭스가 필요합니다.
-
n :=행 수
-
0에서 n 사이의 i에 대해 수행
-
목록 행렬 정렬[i]
-
-
주요 방법에서 다음을 수행하십시오 -
-
n :=행 수
-
sortRows(행렬)
-
current_idx :=크기가 n인 목록, 0으로 채움
-
0에서 n 사이의 i에 대해 수행
-
current_idx[i] :=0
-
-
f :=0
-
동안 current_idx[0]
-
값 :=행렬[0, current_idx[0]]
-
현재 :=사실
-
범위 1에서 n까지의 i에 대해 수행
-
동안 (current_idx[i]
-
current_idx[i] :=current_idx[i] + 1
-
-
행렬[i, current_idx[i] - 1]이 값과 같지 않으면
-
현재 :=거짓
-
-
current_idx[i]가 n과 같으면
-
f :=1
-
루프에서 나오다
-
-
-
존재하는 경우 0이 아닌 경우
-
표시 값
-
-
f가 1과 같으면
-
루프에서 나오다
-
-
current_idx[0] :=current_idx[0] + 1
-
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
MAX =100def sortRows(matrix):n =len(matrix) in range(0, n):matrix[i].sort();def find_common(matrix):n =len(matrix) sortRows( 행렬) current_idx =[0] * n for i in range (0, n):current_idx[i] =0 f =0 while(current_idx[0]입력
<미리>[[13, 2, 15, 4, 17],[15, 3, 2, 4, 36],[15, 2, 15, 4, 12],[15, 26, 4, 3, 2 ],[2, 19, 4, 22, 15]]
출력
2, 4, 15,