分析 : dp思想:首j先確定邊長:邊長受短邊影響 ,所以
dp[i][j]= min(min(dp[i-1][j], dp[i][j-1]), dp[i-1][j-1]) +1 獲取最小邊
同時為了少遍歷一次 ,直接儲存可以滿足正方形的最大邊
maxside = max(side, dp[i][j])
class
solution
maxside =
max(maxside, dp[i]
[j]);}
return maxside * maxside;}}
;
邊框全是1 的最大正方形面積
思想 : 還是dp思想: 由於不考慮,內部, 所以需要跳著比較
儲存兩個陣列: left top 分辨維護連續為1 的 長度
class
solution
for(
int a =
min(l1,l2)
; a>0;
--a)
//邊長
for(
int i=l1-
1; i-a+
1>=0;
--i)
//不能越界
for(
int j=l2-
1; j-a+
1>=0;
--j)
//不能越界
if(left[i]
[j]>=a && left[i-a+1]
[j]>=a &&
top[i]
[j]>=a && top[i]
[j-a+1]
>=a)
return a*a;
return0;
}};
221 最大正方形 力扣
題意理解 求m n矩陣中,每個元素取值只有0,1,求元素1組成的最大正方形面積 問題分析 用動規狀態量 以每個元素為右下角的矩陣的最大邊長 轉移方程 對於a i j dp i j min dp i 1 j dp i j 1 dp i 1 j 1 1 表示對於每個非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 原題url 這道題應該很快會讓我們想起使用動態規劃,從左上角...
力扣解題思路 221 最大正方形
思路 在乙個由 0 和 1 組成的二維矩陣內,找到只包含 1 的最大正方形,並返回其面積。輸入 matrix 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 輸出 4每當看到這種正方形或者矩形的題目,都會形成一種本能的反應,就是找到兩個點,即左上和右下頂點,因為固定這...