>웹 프론트엔드 >JS 튜토리얼 >행렬의 모든 행이 서로 순환 회전하는지 확인하는 JavaScript 프로그램

행렬의 모든 행이 서로 순환 회전하는지 확인하는 JavaScript 프로그램

WBOY
WBOY앞으로
2023-08-21 22:45:081347검색

행렬의 모든 행이 서로 순환 회전하는지 확인하는 JavaScript 프로그램

매트릭스는 행을 정의하는 고정 배열의 배열이 있고 이 배열의 각 인덱스에 대해 고정 길이 배열이 있으며 이러한 배열의 길이가 열 수를 정의하는 일종의 2D 배열입니다. 매트릭스에 존재합니다. 행렬에서 제공하는 이러한 셀에 모든 종류의 데이터 유형을 저장할 수 있습니다.

행렬이 제공되며 각 행에는 정수가 포함되어 있으며 각 행이 서로 회전하는지 확인해야 합니다. 서로 회전한다는 것은 숫자나 왼쪽 또는 오른쪽 회전을 통해 각 행의 동일한 조합을 생성할 수 있음을 의미합니다.

예 1

让我们假设给가정한矩阵是:

으아악

설명: 첫 번째 행이 일정하고 나머지 행을 회전한다고 가정하면 다음과 같은 결과를 얻을 수 있습니다.

두 번째 행을 오른쪽으로 한 번 회전하고 두 번째 행을 오른쪽으로 두 번 회전하면 둘 다 첫 번째 행과 동일하게 만들 수 있습니다.

예 2

적翻译为:

示例2

으아악 ㅋㅋㅋ

접근

문제를 이해하기 위한 적절한 예를 살펴보았습니다. 이제 코드를 구현하는 단계를 살펴보겠습니다. −

    首先,저희는 회전하고 있습니다. ㅋㅋ
  • 지금 该函数中,저희는 1行到最后一行与第0行进行比에 대해 循环从第1行到最后一行与第0行进行比에 대해 来获取矩阵의 속도를 높이고 있습니다.较。

  • 如果当前行与第一行当同,则我们将跳过到下一行。

  • 否则,我们将调用 회전 函数,并将给定的行旋转到其下一个旋转位置。

  • 0번째 행이나 열의 길이가 몇번이나 같은 배열을 찾을 때까지 이 과정을 하게 됩니다.

  • 최대 회전 후에도 현재 행이 0과 같지 않으면 false를 반환합니다.

  • 如果所有的行最终变得回等,那么我们将返回true。

  • 아래쪽 면에서 示例中, 나는 所有行是否是彼此的循环旋转。输入和预期输流如下所示。
  • 输入:행렬 = [ [ 1, 2, 3 ], [ 2, 3, 1 ], [ 3, 1, 2 ] ]

  • 출력: 예
으아악

输출

으아악

时间와 空间复杂島

위 코드의 시간 복잡도는 O(N*M*M)입니다. 여기서 N은 행 수이고 M은 주어진 행렬에 존재하는 열 수입니다. 우리는 행렬 행을 순회하여 인수 또는 N을 제공하고 행의 비교 및 ​​회전을 위해 인수 또는 M*M을 제공합니다.

上述代码的 空间复杂島为O(1) ,因为我们没有使用任何额externative 空间。

결론

재본教程中,저희는JavaScript程序,俇旋转每一行并与第一行进行比较,来检查给定矩阵的所有行是否彼此为循环旋转。我们使用了两个指针와交换方法来旋转의 결정은 혁신적인 이동입니다. 상급의 혁신적인 속도는 O(N*M*M), 공기중의 속도는 O(1)입니다.

위 내용은 행렬의 모든 행이 서로 순환 회전하는지 확인하는 JavaScript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제