單調棧2 矩形最大面積

2021-08-17 19:59:06 字數 1005 閱讀 2221

/* 如果當前行 j 位仍然是1,那麼height[j]++。否則height[j]更新為0 */

有乙個 n*m 的棋盤,棋盤上的每個點都是紅的或綠的。

你需要找出乙個面積最大的矩形區域,使得其中沒有綠的格仔。

第一行 2 個正整數 n,m,描述棋盤尺寸。

接下來 n 行描述這個棋盤,每行 m 個字元,每個字元為 . 或 x,其中 . 表示這個位置是紅色的,x 表示這個位置是綠色的。

一行乙個整數,表示最大面積。

4 5

.....

***xx

.x...

.....

6

以第 3 行第 3 列的方格為左上角,第 4 行第 5 列的方格為右下角的矩形區域是全紅的矩形中面積最大的。

對於 30% 的資料,n,m<=100;

對於 60% 的資料,n,m<=400;

對於 85% 的資料,n,m<=1,000;

對於 100% 的資料,n,m<=1,500。

#include #include #include using namespace std;

int getanswerinrow (int n, int *height);

int getanswer(int n, int m, string *matrix);

int getanswer(int n, int m, string *matrix)

maxrect = max(maxrect, getanswerinrow(m,height));

}return maxrect;

}int getanswerinrow (int n, int *height)

mystack.push(i);

}return ans;

/* 請在這裡設計你的演算法,並將答案返回 */

}int main()

最大面積問題 LargestReactangle

描述 在下列非負陣列中找出最大面積 heigh 0,2,1,3,4,3,2,0 若干非負陣列組成面積不同的矩形,求上述中的最大面積。在圖中畫出了下標 3 5 高度為3,面積為9的矩形和下標為 1 6 高度為1面積為6的矩形。思路 暴力遍歷 1 從下標i開始,對於每乙個高度heigh i h,向左遍歷...

10 18 最大面積 2432

學過初三數學或圓的相關知識的人都會求陰影部分面積。垂徑定理和勾股定理 s陰 a r2 1 2 a 2 b r 2 1 2 b 2 a b 然後就可以列舉a,b找最大值 a,b 2r var r,a,b,i,j longint c,max,b1,a1 double begin readln r for...

島嶼的最大面積

給定乙個包含了一些 0 和 1的非空二維陣列 grid 乙個 島嶼 是由四個方向 水平或垂直 的 1 代表土地 構成的組合。你可以假設二維矩陣的四個邊緣都被水包圍著。找到給定的二維陣列中最大的島嶼面積。如果沒有島嶼,則返回面積為0。示例 1 0,0,1,0,0,0,0,1,0,0,0,0,0 0,0...