221 最大正方形

2021-10-01 02:45:19 字數 700 閱讀 7916

在乙個由 0 和 1 組成的二維矩陣內,找到只包含 1 的最大正方形,並返回其面積。

輸入:1 0 1 0 0

1 01 11

1 11 11

1 0 0 1 0輸出:4

動態規劃。

(1)狀態方程dp(i)(j)表示右下角下標為(i,j)時的最大正方形邊長。當遇到0時,dp[i][j] = 0,肯定不能構成正方形;當遇到1時,有兩種情況:

1)其左上角(i-1, j-1)和正上方(i-1, j)和左邊(i, j-1)若有乙個為0,則dp[i][j] = 1;

2)若其左上角,正上方,和左邊都為1的話,則dp[i][j] = min(dp[i-1][j-1],min(dp[i][j-1], dp[i-1)[j]);

這兩種情況都可以用dp[i][j] = min(dp[i-1][j-1],min(dp[i][j-1], dp[i-1)[j]) 表示。

class solution 

}for (int j = 0; j < col; ++j)

}for (int i = 1; i < row; ++i)

}return res;

}};

221 最大正方形

在乙個由 0 和 1 組成的二維矩陣內,找到只包含 1 的最大正方形,並返回其面積。示例 輸入 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 輸出 4 當我們判斷以某個點為正方形右下角時最大的正方形時,那它的上方,左方和左上方三個點也一定是某個正方形的右下角,否則該...

221 最大正方形

若某格仔值為1,則以此為右下角的正方形的 最大邊長為 上面的正方形 左面的正方形或左上的正方形中,最小的那個,再加上此格。dp i 1 j 1 表示 以第i行 第j列為右下角的正方形的最大邊長 假設補充了多一行全 0 多一列全 0 dp陣列的大小也明確為new dp height 1 width 1...

221 最大正方形

在乙個由 0 和 1 組成的二維矩陣內,找到只包含 1 的最大正方形,並返回其面積。示例 輸入 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 輸出 4 dp水題 dp i j 表示以matrix i j 為右下角的頂點的可組成最大正方形的邊長 class solut...