19 动态规划解最大正方形

问题描述:在一个由'0'和'1'组成的二维矩阵内,找到只包含'1'的最大正方形,并返回其面积;

动态规划求解思路:定义dp[i][j]表示以i,j为右下角的正方形边长,如果[i,j]为1,则dp[i][j]=Math.min(Math.min(dp[i-1][j],dp[i][j-1]),dp[i-1][j-1])+1;表示以[i,j]为右底的正方形需要满足左边,上边,中间的最小值。

public int getMaxSquare(int [][]matrix)
{
int [][]dp=new int[matrix.length][matrix[0].length];
if(matrix[0][0]==1)
{
dp[0][0]=1;
}else
{
dp[0][0]=0;
}
for(int i=1;i

你可能感兴趣的:(JAVA刷题500道,动态规划,算法,java)