單調棧的應用

2021-10-07 14:52:00 字數 560 閱讀 7638

**單調棧:**故名思意,棧中元素是單調遞增(不減)或者是單調遞減(不增)。

leetcode 85——最大矩形 是乙個應用單調棧的好題目。

題目分析:要找到乙個最大矩形,當然可以暴力解法,這個思路簡單,這裡就不多說了。

該如何使用單調棧解決問題呢?

可以先嘗試地做leetcode 84——柱狀圖中的最大矩形

這個是85題的乙個簡化版。

85題**如下:

class solution 

left[i]=mys.top();

mys.push(i);

}int res=0;

for(int i=0;i>& matrix)

int m=matrix.size();

int n=matrix[0].size();

vectorheight(n,0);

int res=0;

for(int i=0;i}

res=max(res,fun(height));

}return res;

}};

單調棧的應用

問題描述 柱狀圖是有一些寬度相等的長方形下端對齊後橫向排列得到的圖形。現在有n個由寬度為1,高度分別為h1,h2,hn的長方形從左到右依次排列組成的柱狀圖。問裡面包含的長方形的最大面積是多少?分析 最容易想到的方法是 討論左端l和右端r。如果確定了長方形的左端l和右端r,那麼最大的可能高度就是min...

單調棧的應用

筆者在做leecode的題 求柱形的最大面積 時,接觸到了單調棧這一資料結構,經過研究發現,單調棧是乙個比較簡單的資料結構,但是要靈活運用卻十分不簡單。單調遞增棧 資料出棧的序列為單調遞增序列 單調遞減棧 資料出棧的序列為單調遞減的序列 描述 有n個人站隊,所有的人全部向右看,個子高的可以看到個子低...

單調棧的應用

單調棧的使用 單調棧的分類 單調遞增棧 單調遞減棧 所謂的遞增和遞減,相對的是 棧頂 棧底的資料大小表示 棧頂 棧底 從小到大 單調遞增 棧頂 棧底 從大到小,單調遞減 單調棧的實現方式 舉例用單調遞增棧 從後向前進行儲存,並讀取。如果棧空入棧 棧非空,此時棧頂元素 入棧元素,入棧 棧非空,此時棧頂...