1277. 모두 일수로 정사각형 부분행렬 계산하기
난이도:중
주제: 배열, 동적 프로그래밍, 매트릭스
1과 0으로 구성된 m * n 행렬이 주어지면 모두 1을 갖는 정사각형 하위 행렬의 수를 반환합니다.
예 1:
예 2:
제약조건:
힌트:
해결책:
동적 계획법(DP)을 사용하면 행렬의 각 셀에서 끝날 수 있는 모든 정사각형 하위 행렬의 수를 추적할 수 있습니다. 이를 달성하기 위한 접근 방식은 다음과 같습니다.
DP 매트릭스 정의:
전환 공식:
행렬의 각 셀(i, j)에 대해:
dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1
- If `matrix[i][j]` is 0, `dp[i][j]` will be 0 because a square of ones cannot end at a cell with a zero.
모든 사각형을 센다:
시간 복잡성:
PHP에서 이 솔루션을 구현해 보겠습니다: 1277. 모두 일수로 정사각형 부분행렬 계산하기
dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1
이 솔루션은 효율적이며 문제에 제공된 제약 조건을 충족합니다.
연락처 링크
이 시리즈가 도움이 되었다면 GitHub에서 저장소에 별표를 표시하거나 즐겨찾는 소셜 네트워크에서 게시물을 공유해 보세요. 여러분의 지원은 저에게 큰 의미가 될 것입니다!
이렇게 더 유용한 콘텐츠를 원하시면 저를 팔로우해주세요.
위 내용은 모두 1인 정사각형 부분행렬 계산의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!