基礎資料結構之佇列題型

2021-10-19 11:35:39 字數 449 閱讀 1713

佇列是一種先進先出的資料結構。蚯蚓

雙端佇列

單調佇列顧名思義,和單調棧一樣,儲存一堆單調遞增的資料。不同的是,單調佇列需要從最前面的元素開始操作,單調棧需要從最後面的元素進行操作。

最大子序和(經典題型)

題目讓求連續的序列和,多半要用到字首和。使用字首和,問題就轉化成了對於位置i,求出最小字首和s[j],j屬於[i - m, i - 1]。

我們先用乙個資料結構儲存[i - m, i - 1]的元素,觀察有哪些性質。對於乙個位置k,如果存在m < k且s[m] > s[k],那麼s[m]就永遠不會被用到,可以被刪去。因為對於i右邊的位置,會優先用比s[m]小的s[k],更何況m還小於k。這就是單調佇列的由來。

結合單調棧的題型,我們發現兩個問題有所關聯。單調棧的問題是讓求出在某個區間裡第乙個比a[i]小的元素,單調佇列是讓求出在某個區間裡最小的元素。

基礎資料結構之雜湊題型

acwing 137.雪花雪花雪花 乙個雪花有多種表現形式,我們讓它的某種特定形式與整數之間建立雜湊 之後對每乙個雪花重複此操作,得到乙個雜湊表。判斷兩個雪花是否相同時,看它的雜湊值是否相同就可以了。acwing 138.兔子與兔子 模板題 套用這個模板,我們可以求得字串中,任意乙個子串的雜湊。步驟...

基礎資料結構 之 佇列(python實現)

隊也是程式設計開發中常見的一種資料結構。棧和隊可用來模擬函式的遞迴過程。隊的特點為先入先出,主要操作包括入隊和出隊。入隊時需判斷隊是否已滿,出隊時需判斷隊是否為空。下面給出乙個隊的python實現的例子 class queue object def init self,size 8 self.que...

資料結構之佇列

八 佇列 鏈式佇列 鍊錶實現 隊尾 rear 隊首 front 靜態佇列 陣列實現 必須是迴圈佇列 需要幾個引數來確定,各引數含義 1 佇列初始化 front和rear值都是0 2 佇列非空 front代表佇列第乙個元素 rear代表佇列最後乙個元素的 下乙個元素 3 佇列空 front和rear相...