LeetCode 85 最大矩形

2021-09-16 23:09:03 字數 722 閱讀 1056

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

示例:

輸入:[

["1","0","1","0","0"],

["1","0","1","1","1"],

["1","1","1","1","1"],

["1","0","0","1","0"]

]輸出:6

此題和上一題的擴充套件,此題給的二維矩陣的每一行向上都形成了乙個直方圖,所以二維矩陣有多少行,就有多少個直方圖。我們用height陣列來儲存當前行的直方圖的高度資訊,同上一題思想一樣,height陣列要在尾部加上乙個元素0。在遍歷當前行更新height陣列時,如果當前元素為字元0,則高度為0;如果當前字元為1,則高度為上一行該位置的高度加1。在更新完height陣列後,計算當前行直方圖的最大矩形面積,這部分就和上一道題一模一樣了。二維矩陣的每一行都對應著乙個向上形成的直方圖的最大矩形面積,最後返回其中的最大值。

class solution 

else} }

return maxsize;

}};

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

LeetCode 85 最大矩形

先統計一下每乙個塊上面的連續長度,然後列舉一行的連續子段,求面積。如果高有0的,break,因為後續也是0.class solution else int min h int max for int k j k 0 k return ans 使用單調棧,統計了每塊上面的連續長度,就轉換成,對於乙個快...