LeetCode 221 Maximal Square

来源:互联网 发布:联通网络测速 编辑:程序博客网 时间:2024/04/27 20:29

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

For example, given the following matrix:

1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0

Return 4.

思路:


public int maximalSquare(char[][] matrix) {if (matrix.length == 0) return 0;int m = matrix.length, n = matrix[0].length, result = 0;//b[i][j] is the edge length of the largest square ENDING at position (i,j)int[][] b = new int[m + 1][n + 1];for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {if (matrix[i - 1][j - 1] == '1') {b[i][j] = Math.min(Math.min(b[i-1][j], b[i][j-1]), b[i-1][j-1]) + 1;result = Math.max(b[i][j], result);}}}return result * result;}




参考https://discuss.leetcode.com/topic/20801/extremely-simple-java-solution

图来自http://www.68idc.cn/help/buildlang/ask/20150625384125.html

0 0
原创粉丝点击