>  기사  >  백엔드 개발  >  . 그리드의 마법 사각형

. 그리드의 마법 사각형

王林
王林원래의
2024-08-10 06:44:32378검색

840. 그리드의 마법 사각형

중간

주제: 배열, 해시 테이블, 수학, 행렬

3 x 3 마방진은 각 행, 열 및 양쪽 대각선이 1 에서 9까지의 고유한 숫자로 채워진 3 x 3 격자입니다. 모두 같은 금액을 가집니다.

정수로 구성된 행 x 열 그리드가 주어지면 연속된 3 x 3 마방진 하위 그리드는 몇 개입니까?

참고: 마방진에는 1부터 9까지의 숫자만 포함될 수 있지만 그리드에는 최대 15의 숫자가 포함될 수 있습니다.

예 1:

. Magic Squares In Grid

  • 입력: 그리드 = [[4,3,8,4],[9,5,1,9],[2,7,6,2]]
  • 출력: 1
  • 설명: 다음 하위 그리드는 3 x 3 마방진입니다.

. Magic Squares In Grid

이것은 아니지만:

. Magic Squares In Grid

전체적으로 주어진 격자 안에는 마방진이 하나만 있습니다.

예 2:

  • 입력: 그리드 = [[8]]
  • 출력: 0

제약조건:

  • 행 == 그리드.길이.
  • col == 그리드[i].길이
  • 1
  • 0 <= 그리드[i][j] <= 15

해결책:

주어진 그리드에서 얼마나 많은 3x3 연속 하위 그리드가 마방진을 형성하는지 계산해야 합니다. 마방진은 모든 행, 열 및 두 대각선의 합이 동일한 값을 갖는 3x3 격자로, 1부터 9까지의 고유한 숫자를 포함합니다.

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

  1. 서브그리드가 매직인지 확인:

    • 하위 그리드에는 1부터 9까지의 고유 숫자가 모두 포함되어야 합니다.
    • 행, 열, 대각선의 합이 15가 되어야 합니다.
  2. 그리드를 통해 반복:

    • 3x3 하위 그리드를 확인해야 하므로 행의 경우 0에서 row-2, 열의 경우 0에서 col-2까지 반복합니다.
    • 3x3 서브 그리드의 왼쪽 상단마다 서브 그리드를 추출하여 마방진인지 확인하세요.

이 솔루션을 PHP로 구현해 보겠습니다: 840. 그리드의 마법 사각형






설명:

  1. isMagic 기능:

    • 3x3 서브그리드를 추출합니다.
    • 모든 숫자가 고유하고 1에서 9 사이인지 확인합니다.
    • 행, 열, 대각선의 합이 모두 15인지 확인합니다.
  2. numMagicSquaresInside 함수:

    • 주어진 그리드에서 가능한 모든 3x3 하위 그리드를 반복합니다.
    • 하위 그리드 중 마방진이 몇 개인지 계산합니다.

이 코드는 제약 조건 내에서 효율적으로 작동하며 주어진 그리드에 있는 모든 3x3 마방진 하위 그리드를 계산합니다.

연락처 링크

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

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

  • 링크드인
  • 깃허브

위 내용은 . 그리드의 마법 사각형의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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