包含min函式的棧 棧的壓入 彈出序列

2022-08-05 13:15:19 字數 1286 閱讀 3472

劍指offer

兩道關於 資料結構——棧 的題目

1. 包含min函式的棧

簡要分析一下這道題,這道題做了3遍才過,踩了一些小坑

看看示例:

得到了規律,那麼關鍵部分的**實現,就在於 兩個棧(rawstack 和 minstack) 和 push() 方法

stackrawstack = new stack<>();

stack

minstack = new stack<>();

public

void push1(int

node)

}minstack.push(min);

}

其他部分就比較簡單

public

void

pop()

public

inttop()

public

intmin()

2. 棧的壓入、彈出序列

同樣,事先分析題目

如上分析:

感覺這題還是在於 抽象思維 轉化為 **,還有注意特殊情況,這題也是測了3遍過的,實現**比較簡單。

public

static

boolean ispoporder(int pusha, int

popa)

//獲取對應的下乙個元素所在下標

int index = pushseq.indexof(popseq.get(0));

popseq.remove(0);

int nextindex = pushseq.indexof(popseq.get(0));

if (math.abs(nextindex - index) == 1 || nextindex == pushseq.size() - 1)

pushseq.remove(index);

else

return

false

; }

return

true

; }

兩題的具體原始碼可以在  裡的offer包中看看

js 包含min函式的棧 包含min函式的棧

目標 定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的 min 函式在該棧中,呼叫 min push 及 pop 的時間複雜度都是 o 1 設計思路 我們要做的是在我們每次資料入棧的時候,記錄當前資料棧中最小值,並且在pop 出棧之後依然能找到最小值 方案 如果只用乙個 min 變數來儲...

棧的壓入彈出序列

題目 輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓棧序列,序列4,5,3,2,1是該棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。解答 可以用乙個輔助的棧來儲存入...

棧的壓入 彈出序列

輸入兩個整數序列,第乙個序列表示棧的壓入順序,判斷兩個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1 2 3 4 5是某棧的壓棧序列,序列4 5 3 2 1是該壓棧序列對應的乙個彈出序列,但4 3 5 1 2就不可能是該壓棧序列的彈出序列。bool ispoporder cons...