leetcode 221 最大正方形

2022-03-14 03:08:31 字數 751 閱讀 8551

221. 最大正方形

其實這題是85. 最大矩形的特殊情況,我們將85題**稍微改一下,然後直接套用即可。

此題要求是正方形,那麼我們在計算長與寬時,取短的那條然後平方即可。

class solution 

public int maximalrectangle(char matrix)

ans = math.max(largestrectanglearea(height), ans);

}return ans;

}public int largestrectanglearea(int heights)

stack.push(i);

}int tmp = 0;

int len = heights.length;

while (!stack.isempty())

return max;}}

另外,這個題可以用dp來做。思路還是很巧妙的。

dp[i,j]表示以(i,j)為右下角的矩陣的面積,那麼狀態轉移方程為:

如果(i,j)為1,dp[i,j] = min (dp[i-1,j],dp[i-1,j-1],d[i,j-1])+1;

也就是說,dp(i,j)只看其身邊三個點的狀態即可

大家可以看圖,自己從圖一0,0點開始推下,推幾個點就想明白了

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矩陣維度相同的...