zoukankan      html  css  js  c++  java
  • [LC] 221. Maximal Square

    Given a 2D binary matrix filled with 0's and 1's, find the largest square containing only 1's and return its area.

    Example:

    Input: 
    
    1 0 1 0 0
    1 0 1 1 1
    1 1 1 1 1
    1 0 0 1 0
    
    Output: 4

    class Solution {
        public int maximalSquare(char[][] matrix) {
            if (matrix == null || matrix.length == 0) {
                return 0;
            }
            
            int row = matrix.length;
            int col = matrix[0].length;
            int[][] sqr = new int[row + 1][col + 1];
            int res = 0;
    
            for (int i = 1; i <= row; i++) {
                for(int j = 1; j <= col; j++) {
                    if (matrix[i - 1][j - 1] == '1') {
                                        sqr[i][j] = Math.min(Math.min(sqr[i - 1][j], sqr[i][j - 1]), sqr[i - 1][j - 1]) + 1;
                    res = Math.max(res, sqr[i][j]);
                    }
                }
            }
            return res * res;
        }
    }
  • 相关阅读:
    LIS
    原根
    数三角形
    组合数问题
    最短路问题
    2020总结
    树状数组
    康托展开
    LCA
    并查集
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12106634.html
Copyright © 2011-2022 走看看