Leetcode 85 最大矩形 C

2021-10-07 05:27:52 字數 728 閱讀 3017

給定乙個僅包含 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題的方法,我們以每行為x軸,因此轉化成84題中求最大矩形的問題,而求每行中對應的每列的1的高度,我們可以用轉移方程實現。

令heights[i][j]為第i行作為x軸時,第j列的連續1的高度,

int

area

(vector<

int>

&heights)

j = index.

top();

}}index.

push

(i);

}while

(index.

top()!=

-1)return ans;

}int

maximalrectangle

(vectorchar

>>

& matrix)

for(i=

1; iint ans=0;

for(i=

0; i)return ans;

}

Leetcode 85最大矩形 C

思路 直方圖中最大矩形的延伸。這道題要將矩陣的每一行處理成和直方圖中的高度,由於題目限定了輸入矩陣的字元只有 0 和 1 兩種,所以處理起來也相對簡單。當遇到0時,將高度設為0,當遇到1時,加上上一層對應位置處的高度即可。class solution res max res,largestrecta...

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...