實現最小棧

2021-10-03 21:12:49 字數 790 閱讀 4108

題目描述:

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

push(x) – 將元素 x 推入棧中

pop() – 刪除棧頂的元素

top() – 獲取棧頂元素

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

示例1:

minstack minstack = new minstack();

minstack.push(-2);

minstack.push(0);

minstack.push(-3);

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

minstack.pop();

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

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

/**

* 方法:通過構建兩個棧來實現最小棧

* 思路:stack 裡放元素,minstack 裡棧頂放當前元素中的最小值

*/class

minstack

public

void

push

(int x)

}else

}public

void

pop()}

public

inttop()

public

intgetmin()

}

最小棧實現

最小棧實現 設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。public class minstack public void push int x ...

實現最小棧

class minstack stack stack new stack stack minstack new stack int stack new int 40 int i 0 int minstack new int 40 int j 0 入棧 對兩個棧都要入棧 每次放入之前需要看最小棧 的棧...

實現最小棧

實現乙個這樣的棧,這個棧除了可以進行普通的push pop操作以外,還可以進行getmin的操作,getmin方法被呼叫後,會返回當前棧的最小值。棧裡面存放的都是 int 整數,並且數值的範圍是 100000,100000 要求所有操作的時間複雜度是 o 1 空間複雜度也能o 1 的話可加分。cla...