이진 행렬은 각 셀에 1과 0 요소만 포함하는 2차원 배열입니다. 이진 행렬의 수평 대칭은 첫 번째 행이 마지막 행과 동일하면 두 번째 행은 마지막에서 두 번째 행과 동일함을 의미합니다. 마찬가지로 수직 대칭이란 첫 번째 열과 마지막 열, 두 번째 열에서 마지막 열, 두 번째 열에서 마지막 열 등이 동일한지 여부를 의미합니다. 이 문제에서는 행렬이 주어지고 그 안에 수평 및 수직 대칭이 있는지 여부를 감지합니다.
1 0 1 0 0 0 1 0 1
설명 - 첫 번째 행과 마지막 행이 동일합니다. 이는 수평 대칭이 있음을 의미합니다. 마찬가지로 첫 번째 열과 마지막 열이 동일하므로 수직 대칭이 됩니다.
Both, horizontal and vertical symmetry is present.
설명- 첫 번째 행은 마지막 행과 동일하지 않고, 첫 번째 열은 마지막 열과 동일하지 않습니다.
주어진 문제를 이해하기 위해 예제를 살펴보았습니다. 이제 코드를 구현하는 단계를 살펴보겠습니다.
먼저, 주어진 행렬의 수평 대칭성을 확인하는 함수를 정의하겠습니다. 이 함수는 주어진 행렬의 단일 인수를 취하고 현재 행렬이 수평 대칭인지 여부를 반환합니다.
우리는 행렬을 반복하고 각 행에 대해 행렬의 중앙을 통과하며 현재 행과 같은 거리에 있는 가상 선의 반대편에 있는 행과 비교할 것입니다. p>
주어진 행렬의 수직 대칭성을 확인하는 함수를 정의하겠습니다. 이 함수는 주어진 행렬이라는 하나의 인수를 사용합니다.
행렬을 반복하고 각 열에 대해 행렬의 중앙을 통과하며 현재 열과 거리가 같은 가상 선의 반대편에 있는 열과 비교할 것입니다. p>
이 두 함수를 호출하고 반환 값을 기반으로 결과를 인쇄합니다.
위 코드의 시간 복잡도는 O(N*M)입니다. 여기서 N은 주어진 행렬의 행 수이고 M은 주어진 행렬의 열 수입니다. 전체 행렬을 두 번 탐색합니다. 한 번은 수평 대칭이고 한 번은 수직 대칭입니다.
위 코드의 공간 복잡도는 추가 공간을 사용하지 않기 때문에 O(1)입니다.
이 튜토리얼에서는 주어진 행렬이 수평 대칭인지 수직 대칭인지 알아보는 JavaScript 프로그램을 구현했습니다. 이진 행렬의 수평 대칭은 첫 번째 행이 마지막 행과 동일하면 두 번째 행은 마지막에서 두 번째 행과 동일함을 의미합니다. 마찬가지로 수직 대칭이란 첫 번째 열과 마지막 열, 두 번째 열에서 마지막 열, 두 번째 열에서 마지막 열 등이 동일한지 여부를 의미합니다. 우리는 시간 복잡도 O(N*M)과 공간 복잡도 O(1)을 갖는 프로그램을 구현했습니다.
위 내용은 이진 행렬의 수평 및 수직 대칭을 확인하는 JavaScript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!