Maximal Rectangle

Given a binary matrix filled with 0's and 1's, find the largest rectangle containing only 1's and return its area. Example: Input: matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]] Output: 6 Explanation: The largest rectangle of 1's has area 6. Pattern focus: Monotonic Stack applied row by row on histogram heights.

Input Format

matrix = binary matrix

Output Format

largest rectangle area consisting only of 1's

Constraints

  • 1 <= matrix.length, matrix[i].length <= 200
  • matrix[i][j] is '0' or '1'

Examples

Example 1:

Input:

matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]

Output:

6

Explanation:

Convert each row into a histogram and reuse the histogram rectangle technique.

Example 2:

Input:

matrix = [["0"]]

Output:

0

Explanation:

A matrix with no 1's has area 0.

Loading...
Maximal Rectangle - Monotonic Stack Queue