單調棧分析

2021-09-29 09:12:40 字數 859 閱讀 1159

單調棧找到小於(大於)且最近的元素的原理:

最後將所有元素遍歷完成後,必須按照同樣的方法去將棧中剩餘元素全部退棧掉

void

getnearnums

(const vector<

int>

& nums, vector

int,

int>>

& nearminnums)

else

// 最後必須將當前元素給入棧

stidx.

push

(i);}}

// stidx還有元素

while

(!stidx.

empty()

)}

題目連線

思路:最大的那個面積肯定是取決於某個最低的高度值,必然是某個高度值。因此,我們只需要計算出每個高度能得到的最大面積,然後找到最大的面積就是最終答案。如何求每個矩形能達到的最大面積呢?利用遞迴棧可以分別找到左、右最小最近的元素的下標,因此相減不就是當前矩形的最大寬度嗎!

單調棧 模板 單調棧模板

biu 單調棧主要用於求取左邊第乙個比它大,或者比它小的數。就比如站隊隨便排成一列,可以求到每個人後面第乙個比他高的人。同理可以推廣至右邊,比它矮均可。這就是單調遞增棧 遞減棧,從前至 棧,從後向前入棧的區別了。單調棧比較抽象,非常具有智慧型的想法,可應用的場景相當少,根據幾個經典題目體會它的用法會...

單調佇列 單調棧

參考文章 單調佇列 poj 2823 給定乙個數列,從左至右輸出每個長度為m的數列段內的最小數和最大數。數列長度 n 106 m n n 106,m n n 106 m n 直接暴力求解複雜度在0 mn 可以考慮維護區間最值,單調佇列則是維護區間佇列的強大 單調佇列的定義 單調佇列實現的大致過程 1...

棧和佇列 單調佇列 單調棧

講解部落格鏈結 一 單調棧 1 什麼是單調棧?單調棧是指乙個棧內部元素具有嚴格單調性 單調遞增,單調遞減 的一種資料結構。2 單調棧的兩個性質 滿足從棧頂到棧底具有嚴格的單調性 滿足後進先出的特徵,越靠近棧底的元素越早的進棧。3 元素進棧的過程 對於當前進棧元素x 如果x 棧頂元素,x 進棧。否則 ...