LeetCode85 最大矩形

2022-09-18 06:51:20 字數 861 閱讀 7498

給定乙個僅包含 0 和 1 、大小為 rows x cols 的二維二進位制矩陣,找出只包含 1 的最大矩形,並返回其面積。

示例 1:

輸入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]

輸出:6

解釋:最大矩形如上圖所示。

示例 2:

輸入:matrix =

輸出:0

示例 3:

輸入:matrix = [["0"]]

輸出:0

示例 4:

輸入:matrix = [["1"]]

輸出:1

示例 5:

輸入:matrix = [["0","0"]]

輸出:0

rows == matrix.length

cols == matrix[0].length

1 <= row, cols <= 200

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

單調棧

由leetcode84 柱形圖的最大矩形可得出乙個陣列的最大矩陣,我們可以遍歷二維陣列的每行,把當前行及之前行的1看作是乙個柱形圖,然後計算出當前行的柱形圖的最大矩形,然後遍歷取得最大值

class solution 

left[i] = stack.isempty()?-1:stack.peek();

stack.push(i);

} int max = 0;

for(int i=0;ireturn max;

}}

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一樣,對每一列都求出每...