LeetCode 155 最小棧 雙鏈表

2021-10-06 00:11:19 字數 1136 閱讀 4839

155. 最小棧

設計乙個支援 push ,pop ,top 操作,並能在常數時間內檢索到最小元素的棧。

push(x) —— 將元素 x 推入棧中。

pop() —— 刪除棧頂的元素。

top() —— 獲取棧頂元素。

getmin() —— 檢索棧中的最小元素。

示例:輸入:["minstack","push","push","push","getmin","pop","top","getmin"]

[,[-2],[0],[-3],,,,]

輸出:[null,null,null,null,-3,null,0,-2]

解釋:minstack minstack = new minstack();

minstack.push(-2);

minstack.push(0);

minstack.push(-3);

minstack.getmin(); --> 返回 -3.

minstack.pop();

minstack.top(); --> 返回 0.

minstack.getmin(); --> 返回 -2.

pop、top 和 getmin 操作總是在 非空棧 上呼叫。

用鍊錶模擬,記錄乙個last指標以便加速,遇到刪除最小值的情況,就重新遍歷最小值,當然也可以用乙個容器優化

到nlongn,懶得寫了

class

minstack

}public

minstack()

public

void

push

(int x)

public

void

pop()}

//刪除尾節點操作

last=last.pre;

last.next=null;

}public

void

printlist()

system.out.

println()

;}public

inttop()

public

intgetmin()

}

leetcode 155 最小棧 C語言

設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 minstack minstack new minstack minstack.push 2 m...

leetcode 155 最小棧 c 實現

設計乙個支援 push pop top 操作,並能在常數時間內檢索到最小元素的棧。輸入 minstack push push push getmin pop top getmin 2 0 3 輸出 null,null,null,null,3,null,0,2 解釋 minstack minstack...

Leetcode155實現最小堆

設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 minstack minstack new minstack minstack.push 2 m...