原題目:
思路:本題是上乙個題目的變型,稍作分析我們不難發現,我們對每一行的每乙個點抽取其高度,其實就是乙個求柱狀圖中最大矩形面積的問題,leetcode 84。
實現:我們採用陣列dp記錄每乙個點的高度,dp的大小為matrix[0].size()。那麼本行的dp如何求取:
1、如果matrix[i][j]=='0',其柱狀圖的高度為0,dp[j] = 0;
2、如果為'1',柱狀圖的高度就是上一行柱狀圖高度+1,dp[j] = dp[j] + 1;
然後對每一行求出最大矩形面積,最後用ans記錄所有行中最大的矩形面積,返回即可。
**:
class solution
left[i] = mono_stack.top();
mono_stack.push(i);
}int ans = 0;
for(int i=0;i>& matrix)
// 計算本行的柱狀圖的最大矩形
ans = max(ans, largestrectanglearea(dp));
}return ans;
}};
LeetCode 85 最大矩形
給定乙個僅包含 0 和 1 的二維二進位制矩陣,找出只包含 1 的最大矩形,並返回其面積。示例 輸入 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 輸出 6此題和上一題的擴充套件,此題給的二維矩陣的每一行向上都形成了乙個直方圖,所以二維矩陣有多少行,就有多少個直方圖...
leetcode85 最大矩形
1.轉換成直方圖的做法 參考 利用leetcode84中的方法來做 首先要將給定的01矩陣轉換成84中的直方圖的樣子。每一行都對應乙個直方圖,且下一行直方圖是由上一行直方圖計算得到的。如果是0,則當前直方圖高為0,如果是1,則當前直方圖高度是上一層對應位置高度 1 1 0 1 0 0 1,0 1,0...
LeetCode 85 最大矩形
給定乙個僅包含 0 和 1 的二維二進位制矩陣,找出只包含 1 的最大矩形,並返回其面積。示例 輸入 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 輸出 6這一題的演算法本質上和84題largest rectangle in histogram一樣,對每一列都求出每...