力扣-221-最大正方形
package LeetCode; public class LeetCode221_2 { public static int maximalSquare(char[][] matrix) { if (matrix == null || matrix.length == 0 || matrix[0].length == 0) return 0; int n = matrix.length, m = matrix[0].length; int ans = -1; int[][] dp = new int[n][m]; for(int i = 0; i < n; i++) { if(matrix[i][0] == '1') dp[i][0] = 1; } for(int j = 0; j < m; j++) { if(matrix[0][j] == '1') dp[0][j] = 1; } for(int i = 1; i < n; i++) { for(int j = 1; j < m; j++) { if(matrix[i][j] == '1') dp[i][j] = Math.min(dp[i-1][j-1], Math.min(dp[i][j-1], dp[i-1][j])) + 1; } } for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { ans = Math.max(ans, dp[i][j]); } } return ans * ans; } public static void main(String[] args) { char[][] matrix = {{'1','0','1','0','0'}, {'1','0','1','1','1'}, {'1','1','1','1','1'}, {'1','0','0','1','0'}}; int res = maximalSquare(matrix); System.out.println(res); } }
作者:Ryanjie
出处:http://www.cnblogs.com/ryanjan/
本文版权归作者和博客园所有,欢迎转载。转载请在留言板处留言给我,且在文章标明原文链接,谢谢!
如果您觉得本篇博文对您有所收获,觉得我还算用心,请点击右下角的 [推荐],谢谢!