LeetCode 221 最大正方形 DP

2021-10-17 05:26:09 字數 1214 閱讀 6024

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

示例 1:

輸入:matrix = [[「1」,「0」,「1」,「0」,「0」],[「1」,「0」,「1」,「1」,「1」],[「1」,「1」,「1」,「1」,「1」],[「1」,「0」,「0」,「1」,「0」]]

輸出:4

示例 2:

輸入:matrix = [[「0」,「1」],[「1」,「0」]]

輸出:1

示例 3:

輸入:matrix = [[「0」]]

輸出:0

m == matrix.length

n == matrix[i].length

1 <= m, n <= 300

matrix[i][j] 為 '0' 或 '1'

dp[i][j]代表以i,j為右下角的正方形的最大邊長。

up[i][j]代表i,j的上方有多少個連續的1。

lef[i][j]代表該位置左邊有多少個連續的1.

class

solution

;int lef[maxn]

[maxn]=;

int dp[maxn]

[maxn]=;

void

out(

int n,

int m)

cout << endl;

} cout << endl;

}int

maximalsquare

(vectorchar

>>

& matrix)

for(

int i =

0; i < n; i++)}

for(

int i =

0; i < n; i++

) dp[i][0

]= matrix[i][0

]-'0';

for(

int i =

0; i < m; i++

) dp[0]

[i]= matrix[0]

[i]-

'0';

for(

int i =

1; i < n; i++)}

// out( n, m);

return ans * ans;}}

;

LeetCode221 最大正方形

在乙個由 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 m n 其中dp i j 表示以座標 i,j 為右下角元素的最大正方形的邊長。通過觀...

Leetcode 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 思路 和最大長方形類似 可以參照不過每次的max換位長和寬中選取最小值,算他們的平方 提交的 class solu...

LeetCode 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 思路 本題需要返回矩陣中最大的正方形面積,計算正方形面積只要知道邊長即可。申請乙個跟matrix矩陣維度相同的...