Skip to content

Instantly share code, notes, and snippets.

@SuryaPratapK
Created April 27, 2020 15:09
Show Gist options
  • Save SuryaPratapK/f3b0f874b123bac74a301bbac9bbb04e to your computer and use it in GitHub Desktop.
Save SuryaPratapK/f3b0f874b123bac74a301bbac9bbb04e to your computer and use it in GitHub Desktop.
class Solution {
public:
int maximalSquare(vector<vector<char>>& matrix) {
int rows = matrix.size();
if(rows==0)
return 0;
int cols = matrix[0].size();
vector<vector<int>> dp(rows+1,vector<int>(cols+1,0));
int largest = 0;
for(int i=1;i<=rows;++i)
{
for(int j=1;j<=cols;++j)
{
if(matrix[i-1][j-1]=='1')
{
dp[i][j] = 1 + min(dp[i-1][j],min(dp[i][j-1],dp[i-1][j-1]));
if(largest < dp[i][j])
largest = dp[i][j];
}
}
}
return largest*largest;
}
};
@hp902
Copy link

hp902 commented Jul 17, 2021

Java Solution

`

public int maximalSquare(char[][] matrix) {
   int rows = matrix.length;
    if(rows==0){
        return 0;
    }        
    
    int column = matrix[0].length;
    
    int[][] dp = new int[rows+1][column+1];
    
    
    int largest = 0;
    
    for(int i=1; i<=rows; i++){
        for(int j=1; j<=column; j++){
            
            if(matrix[i-1][j-1] == '1'){
                dp[i][j] = 1+ Math.min(dp[i-1][j-1], Math.min(dp[i-1][j],dp[i][j-1]));
                
                largest = Math.max(largest, dp[i][j]);
            }
            
        }
    }
    
    return largest*largest; 
}

`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment