力扣 DP正方形面積

2021-10-06 15:04:40 字數 905 閱讀 1097

分析 : 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每當看到這種正方形或者矩形的題目,都會形成一種本能的反應,就是找到兩個點,即左上和右下頂點,因為固定這...