Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public int maximalSquare(char[][] matrix) {
- int n = matrix.length;
- if(n == 0) return 0;
- int m = matrix[0].length;
- int[][] dp = new int[2][m+1];
- int max = 0;
- int pre = 0;
- int cur = 1;
- for(int i = 1 ; i <= n; ++i){
- for(int j = 1 ; j <= m ; ++j){
- if(matrix[i-1][j-1] == '0'){
- dp[cur][j] = 0;
- continue;
- }
- dp[cur][j] = Math.min(Math.min(dp[cur][j-1],dp[pre][j]), dp[pre][j-1]) +1;
- max = Math.max(dp[cur][j], max);
- }
- pre = cur;
- cur = (cur +1)%2;
- }
- return max*max;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement