互聯(lián)網(wǎng)秋招刷題leetcode總結(jié)——棧與隊(duì)列

括號(hào)類問題

20. 有效的括號(hào)(easy)

遍歷字符串,每次與棧頂括號(hào)進(jìn)行匹配,匹配成功棧頂彈出,否則繼續(xù)壓入棧。

32. 最長有效括號(hào)(hard)

難點(diǎn)在于不知道如何得到有效括號(hào)的長度,以及如何更新長度。

解法:下標(biāo)入棧法,每次括號(hào)匹配成功,都用當(dāng)前下標(biāo)減去棧頂元素的下標(biāo)得到當(dāng)前有效括號(hào)的長度,解決了長度更新問題。

設(shè)計(jì)類問題

155. 最小棧(easy)

在普通棧的基礎(chǔ)上,實(shí)現(xiàn)常數(shù)時(shí)間檢索到最小元素。

解法:增加一個(gè)輔助棧用于存儲(chǔ)當(dāng)前棧中的最小值。

255. 用隊(duì)列實(shí)現(xiàn)棧(easy)

隊(duì)列特性:先進(jìn)先出;棧特性:后進(jìn)先出

兩個(gè)隊(duì)列法:保存棧頂元素。

一個(gè)隊(duì)列法:每次入隊(duì)新元素時(shí),把隊(duì)列順序反轉(zhuǎn)過來。

單調(diào)棧問題

42. 接雨水(hard)

思路:當(dāng)前柱子的接水量取決于左右兩側(cè)最高柱子。

解法:遍歷兩次序列,保存當(dāng)前柱子的左側(cè)最大值以及右側(cè)最大值。再次遍歷序列,得到最終接水量。

單調(diào)棧解法思路可見:http://www.itdecent.cn/p/cd9b57d79b77

739. 每日溫度(medium)

解法:下標(biāo)入棧+維護(hù)一個(gè)單調(diào)遞減棧

遍歷序列,若當(dāng)前元素值小于棧頂元素所對(duì)應(yīng)的值,則當(dāng)前元素的下標(biāo)入棧,否則彈出棧頂元素并計(jì)算當(dāng)前元素與棧頂元素下標(biāo)之差。

84. 柱狀圖中矩形最大面積(hard)

解法:下標(biāo)入棧+維護(hù)一個(gè)單調(diào)遞增棧

棧與遞歸

1、二叉樹的非遞歸遍歷

2、同理,圖的深度優(yōu)先遍歷也可借助棧來實(shí)現(xiàn)

隊(duì)列

設(shè)計(jì)類問題

225. 用兩個(gè)棧實(shí)現(xiàn)隊(duì)列

類似于用隊(duì)列實(shí)現(xiàn)棧

隊(duì)列與廣度優(yōu)先

圖問題的廣度優(yōu)先可借助隊(duì)列實(shí)現(xiàn),二叉樹層序遍歷也是

雙端隊(duì)列

239. 滑動(dòng)窗口最大值(hard)

優(yōu)先隊(duì)列

347. 前k個(gè)高頻元素(medium)

詳見:http://www.itdecent.cn/p/cd9b57d79b77

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容