Back to Practice Dashboard
Competitive ProgrammingHard

Maximum Size Square Sub Matrix

Learn how to solve the 'Maximum Size Square Sub Matrix' problem. This detailed resource details brute force and optimized approaches.

Problem Statement

Hard

Write a function max_square_submatrix(matrix) that finds the side length of the maximum square sub-matrix composed entirely of 1s in a given binary matrix.

Constraints
  • 1 <= len(matrix), len(matrix[0]) <= 500
  • matrix[i][j] is either 0 or 1

Examples

Example 1
Input
max_square_submatrix([[0, 1, 1, 0, 1], [1, 1, 0, 1, 0], [0, 1, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 1, 1], [0, 0, 0, 0, 0]])
Output
3
Explanation

The maximum size square sub-matrix of 1s has size 3x3, located from row 2 to 4 and column 1 to 3.

Example 2
Input
max_square_submatrix([[1, 1], [1, 1]])
Output
2
Explanation

The entire matrix is a 2x2 square of 1s.

Need a Hint?
Define subproblem states, establish the recurrence relation, and use memoization (top-down) or tabulation (bottom-up).
Edge Cases to Watch
  • Empty list or null input variables
  • Single item lists/arrays
  • Extremely large input bounds causing integer or stack overflow

Ready to Solve?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Open in Editor