LeetCode 最大正方形

2021-09-11 18:12:20 字數 784 閱讀 3668

在乙個由 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[row][col] = 1 + min(dp[row-1][col-1], min(dp[row-1][col], dp[row][col-1]));

int maxres = 0;//最大的正方形邊長

/**dp[i][j]表示以第i行第j列為右下角所能構成的最大正方形邊長, 則遞推式為:

dp[i][j] = 1 + min(dp[i-1][j-1], dp[i-1][j], dp[i][j-1]);

**/vector> dp(rowsize + 1, vector(colsize + 1, 0));

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

return maxres * maxres;//返回面積}};

leetcode最大正方形

1.動態規劃 設矩陣的長寬為m,n,dp m 1 n 1 其中dp i j 表示以 i 1,j 1 為右下方元素的最大正方形的邊長,初始dp全為0 遍歷矩陣中每乙個元素,若matrix i,j 0,則跳過 若matrix i,j 不為0,則dp i j 的值由dp i 1 j 1 dp i 1 j ...

最大正方形

題目鏈結 在乙個n m的只包含0和1的矩陣裡找出乙個不包含0的最大正方形,輸出邊長。輸入格式 輸入檔案第一行為兩個整數n,m 1 n,m 100 接下來n行,每行m個數字,用空格隔開,0或1.輸出格式 乙個整數,最大正方形的邊長 輸入樣例 1 複製 4 4 0 1 1 1 1 1 1 0 0 1 1...

最大正方形

題解 if a i j 1 f i j min min f i j 1 f i 1 j f i 1 j 1 1 f i j 表示以節點i,j為右下角,可構成的最大正方形的邊長。只有a i j 1時,節點i,j才能作為正方形的右下角 對於乙個已經確定的f i j x,它表明包括節點i,j在內向上x個節...