>  기사  >  백엔드 개발  >  . 나선형 매트릭스 III

. 나선형 매트릭스 III

王林
王林원래의
2024-08-09 09:18:51694검색

885. 나선형 매트릭스 III

중간

주제: 어레이, 매트릭스, 시뮬레이션

동쪽을 향한 행 x 열 그리드의 셀(rStart, cStart)에서 시작합니다. 북서쪽 모퉁이는 그리드의 첫 번째 행과 열에 있고, 남동쪽 모퉁이는 마지막 행과 열에 있습니다.

시계 방향 나선형으로 걸어가며 이 그리드의 모든 위치를 방문하게 됩니다. 그리드 경계 밖으로 이동할 때마다 그리드 외부로 계속 이동합니다(그러나 나중에 그리드 경계로 돌아갈 수도 있습니다). 결국 우리는 그리드의 모든 행 * 열 공백에 도달합니다.

방문한 순서대로 그리드의 위치를 ​​나타내는 좌표 배열을 반환합니다.

예 1:

. Spiral Matrix III

  • 입력: 행 = 1, 열 = 4, rStart = 0, cStart = 0
  • 출력: [[0,0],[0,1],[0,2],[0,3]]

예 2:

. Spiral Matrix III

  • 입력: 행 = 5, 열 = 6, rStart = 1, cStart = 4
  • 출력: [[1,4],[1,5],[2,5],[2,4],[2,3],[1,3],[0,3] ,[0,4],[0,5],[3,5],[3,4],[3,3],[3,2],[2,2],[1,2],[ 0,2],[4,5],[4,4],[4,3],[4,2],[4,1],[3,1],[2,1],[1, 1],[0,1],[4,0],[3,0],[2,0],[1,0],[0,0]]

제약조건:

  • 1 <= 행, 열 <= 100
  • 0 <= rStart < 행
  • 0 <= cStart < 열

해결책:

이 문제를 해결하려면 다음 단계를 따르세요.

  1. 방향 배열: 방향 배열을 사용하여 올바른 순서(동쪽 → 남쪽 → 서쪽 → 북쪽)로 쉽게 이동할 수 있습니다. 각 방향에 따라 행 및 열 인덱스가 변경됩니다.
  2. 걸음 관리: 각 방향으로 몇 걸음을 걸어야 하는지 제어해야 합니다. 처음에는 동쪽으로 1단계 이동한 다음 남쪽으로 1단계, 서쪽으로 2단계, 북쪽으로 2단계 등으로 이동합니다.
  3. 경계 확인: 이동할 때마다 새 위치가 그리드 경계 내에 있는지 확인하세요. 그렇다면 결과 배열에 추가하세요.
  4. 중지 조건: 모든 행 * 열 위치를 방문한 후 루프를 중지합니다.

이 솔루션을 PHP로 구현해 보겠습니다: 885. 나선형 매트릭스 III






설명:

  1. 방향: 방향 배열은 동쪽, 남쪽, 서쪽, 북쪽으로 이동하기 위한 행과 열의 변화를 보유합니다.
  2. 이동: (rStart, cStart)에서 시작하여 나선형 패턴의 방향에 따라 이동합니다.
  3. 경계 확인: 위치가 그리드 내에 있는 경우에만 결과에 추가하세요.
  4. 걸음 제어: stepCount는 회전하기 전에 현재 방향으로 몇 걸음을 이동하는지 관리합니다. 2턴 이후부터 증가합니다.
  5. 종료: 그리드의 모든 위치를 방문할 때까지 루프가 계속됩니다.

이 접근 방식을 사용하면 필요한 나선형 순서로 그리드의 모든 셀을 방문할 수 있습니다.

연락처 링크

이 시리즈가 도움이 되었다면 GitHub에서 저장소에 별표를 표시하거나 즐겨찾는 소셜 네트워크에서 게시물을 공유해 보세요. 여러분의 지원은 저에게 큰 의미가 될 것입니다!

이런 유용한 콘텐츠를 더 원하시면 저를 팔로우해주세요.

  • 링크드인
  • 깃허브

위 내용은 . 나선형 매트릭스 III의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.