在乙個由 0 和 1 組成的二維矩陣內,找到只包含 1 的最大正方形,並返回其面積。
輸入:使用動態規劃:設定dp陣列:1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 0 1 0
輸出: 4
表示在當前座標處最大的正方形邊長
遞推方程:dp[m][n] = min(dp[m - 1][n - 1], dp[m][n - 1], dp[m - 1][n]) + 1;
這裡為什麼是取最小的值呢?推薦官方題解下這位大佬的**
就是以當前右下角的視角來看,若要形成正方形,就要受到左、左上、上、當前都是 「1」 才行,而在這些地方的dp陣列中只能取最小值,因為取最大值其他地方可能並不滿足是 「1」 。
class
solution}}
return maxvalue * maxvalue;
}}
221 最大正方形
在乙個由 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,肯定不能構成正方形 ...
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...