力扣 單調棧與單調佇列問題

2022-05-09 03:03:10 字數 419 閱讀 8364

單調棧:

1.402. 移掉k位數字:需要注意邊界情況,去除完無字元返回」「,判斷時不能有=號,棧內應該是不嚴格遞增的。

2.316. 去除重複字母:需要借助雜湊表來統計出現次數,並且標記是否已經存在於棧內。

3.84. 柱狀圖中最大的矩形,挺難的,針對每乙個柱需要確定左右比它低的作為邊界,正向遍歷單調棧確定左邊界,單調遞增棧,儲存下標,單調遞增,left是棧頂元素;倒序遍歷確定右邊界

5.739. 每日溫度,棧內儲存index下標。

單調佇列:

1.239. 滑動視窗最大值,單調佇列是頭出。

2.劍指 offer 59 - ii. 佇列的最大值,單調佇列要用deque,並且有新元素時要從尾部開始比較彈出小於它的,然後push進去才能形成遞減的佇列。

單調佇列與單調棧

單調棧 單調棧,顧名思義,就是維持單調性 遞增或者遞減 的棧結構,如果新入棧的元素破壞了單調性,就彈出原先棧內元素,直到能夠滿足單調性 用途 它可以很方便地求出某個數的左邊或者右邊第乙個比它大或者小的元素,而且總時間複雜度o n 並且單調棧本身並不難實現 維護 每次入棧前先檢驗入棧後是否會破壞棧的單...

單調佇列與單調棧

線段樹等等容易tle,我們需要乙個o n 的演算法來解決這個問題。思路 可以看出,這個視窗是可以用乙個雙向佇列來模擬的,每當後方加入乙個數,都要從佇列尾部開始淘汰掉所有的小於它的數,保證佇列中每乙個數的後面,在視窗範圍內沒有大於等於它的數。當隊首元素不在視窗範圍時,隊首元素出隊。這樣操作後,隊內的元...

單調佇列與單調棧

線段樹等等容易tle,我們需要乙個o n 的演算法來解決這個問題。思路 可以看出,這個視窗是可以用乙個雙向佇列來模擬的,每當後方加入乙個數,都要從佇列尾部開始淘汰掉所有的小於它的數,保證佇列中每乙個數的後面,在視窗範圍內沒有大於等於它的數。當隊首元素不在視窗範圍時,隊首元素出隊。這樣操作後,隊內的元...