> 웹 프론트엔드 > JS 튜토리얼 > 이진 행렬의 수평 및 수직 대칭을 확인하는 JavaScript 프로그램

이진 행렬의 수평 및 수직 대칭을 확인하는 JavaScript 프로그램

王林
풀어 주다: 2023-09-02 17:05:08
앞으로
1234명이 탐색했습니다.

JavaScript 程序检查二进制矩阵中的水平和垂直对称性

이진 행렬은 각 셀에 1과 0 요소만 포함하는 2차원 배열입니다. 이진 행렬의 수평 대칭은 첫 번째 행이 마지막 행과 동일하면 두 번째 행은 마지막에서 두 번째 행과 동일함을 의미합니다. 마찬가지로 수직 대칭이란 첫 번째 열과 마지막 열, 두 번째 열에서 마지막 열, 두 번째 열에서 마지막 열 등이 동일한지 여부를 의미합니다. 이 문제에서는 행렬이 주어지고 그 안에 수평 및 수직 대칭이 있는지 여부를 감지합니다.

Enter

1 0 1
0 0 0 
1 0 1 
로그인 후 복사

출력

으아악

설명 - 첫 번째 행과 마지막 행이 동일합니다. 이는 수평 대칭이 있음을 의미합니다. 마찬가지로 첫 번째 열과 마지막 열이 동일하므로 수직 대칭이 됩니다.

Enter

Both, horizontal and vertical symmetry is present. 
로그인 후 복사

출력

으아악

설명- 첫 번째 행은 마지막 행과 동일하지 않고, 첫 번째 열은 마지막 열과 동일하지 않습니다.

방법

주어진 문제를 이해하기 위해 예제를 살펴보았습니다. 이제 코드를 구현하는 단계를 살펴보겠습니다.

  • 먼저, 주어진 행렬의 수평 대칭성을 확인하는 함수를 정의하겠습니다. 이 함수는 주어진 행렬의 단일 인수를 취하고 현재 행렬이 수평 대칭인지 여부를 반환합니다.

  • 우리는 행렬을 반복하고 각 행에 대해 행렬의 중앙을 통과하며 현재 행과 같은 거리에 있는 가상 선의 반대편에 있는 행과 비교할 것입니다. p>

  • 주어진 행렬의 수직 대칭성을 확인하는 함수를 정의하겠습니다. 이 함수는 주어진 행렬이라는 하나의 인수를 사용합니다.

  • 행렬을 반복하고 각 열에 대해 행렬의 중앙을 통과하며 현재 열과 거리가 같은 가상 선의 반대편에 있는 열과 비교할 것입니다. p>

  • 이 두 함수를 호출하고 반환 값을 기반으로 결과를 인쇄합니다.

으아악

출력

으아악

시간과 공간의 복잡성

위 코드의 시간 복잡도는 O(N*M)입니다. 여기서 N은 주어진 행렬의 행 수이고 M은 주어진 행렬의 열 수입니다. 전체 행렬을 두 번 탐색합니다. 한 번은 수평 대칭이고 한 번은 수직 대칭입니다.

위 코드의 공간 복잡도는 추가 공간을 사용하지 않기 때문에 O(1)입니다.

결론

이 튜토리얼에서는 주어진 행렬이 수평 대칭인지 수직 대칭인지 알아보는 JavaScript 프로그램을 구현했습니다. 이진 행렬의 수평 대칭은 첫 번째 행이 마지막 행과 동일하면 두 번째 행은 마지막에서 두 번째 행과 동일함을 의미합니다. 마찬가지로 수직 대칭이란 첫 번째 열과 마지막 열, 두 번째 열에서 마지막 열, 두 번째 열에서 마지막 열 등이 동일한지 여부를 의미합니다. 우리는 시간 복잡도 O(N*M)과 공간 복잡도 O(1)을 갖는 프로그램을 구현했습니다.

위 내용은 이진 행렬의 수평 및 수직 대칭을 확인하는 JavaScript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿