#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int solution(vector<vector<int>> board)
{
    if(board.size() == 1 || board[0].size() == 1)
    {
        for(int i = 0; i < board.size(); i++)
        {
            for(int j = 0; j < board[0].size(); j++)
            {
                if(board[i][j] == 1)
                {
                    return 1;
                }
            }
        }
        
        return 0;
    }
    else
    {
        int MaxLen = 0;
        
        for(int i = 1; i < board.size(); i++)
        {
            for(int j = 1; j < board[i].size(); j++)
            {
                if(board[i][j])
                {
                    board[i][j] = min({board[i-1][j-1], board[i-1][j], board[i][j-1]}) + 1;
                }
 
                if(MaxLen < board[i][j])
                {
                    MaxLen = board[i][j];
                }
            }
        }
        
        return MaxLen * MaxLen;       
    }
}
cs

+ Recent posts