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