lintcode 第12題帶最小值操作的棧

2021-08-07 12:34:00 字數 593 閱讀 3549

要求:實現乙個帶有取最小值min方法的棧,min方法將返回當前棧中的最小值。你實現的棧將支援push,pop 和 min 操作,所有操作要求都在o(1)時間內完成。

注意事項:如果堆疊中沒有數字則不能進行min方法的呼叫。

樣例:如下操作:push(1),pop(),push(2),push(3),min(), push(1),min() 返回 1,2,1

思路:我們使用兩個stack棧來操作,乙個儲存資料,乙個儲存最小值(找到相等的和更小的就加進去),值得注意的是,沒有元素的時候,無論第乙個壓進棧的元素是多大,最小值的堆疊都要壓進去,出棧的時候如果只剩下乙個元素,也是要特殊處理的。

**如下:

public class minstack 

public void push(int number)

}public int pop() else

}return t;

}else//資料棧為空

return 0;

}public int min()

}

如果有所幫助,臉皮厚求個贊~

技術之路不在一時,山高水長,縱使緩慢,馳而不息。

LintCode刷題 12 帶最小值操作的棧

實現乙個帶有取最小值min方法的棧,min方法將返回當前棧中的最小值。你實現的棧將支援push,pop 和 min 操作,所有操作要求都在o 1 時間內完成。注意事項 如果堆疊中沒有數字則不能進行min方法的呼叫 樣例 如下操作 push 1 pop push 2 push 3 min push 1...

LintCode 12 帶最小值操作的棧

實現乙個帶有取最小值min方法的棧,min方法將返回當前棧中的最小值。你實現的棧將支援push,pop 和 min 操作,所有操作要求都在o 1 時間內完成。注意事項 如果堆疊中沒有數字則不能進行min方法的呼叫如下操作 push 1 pop push 2 push 3 min push 1 min...

LintCode練習 12 帶最小值操作的棧

題目描述 實現乙個帶有取最小值min方法的棧,min方法將返回當前棧中的最小值。你實現的棧將支援push,pop 和 min 操作,所有操作要求都在o 1 時間內完成。樣例如下操作 push 1 pop push 2 push 3 min push 1 min 返回 2,1 思路 使用兩個列表mda...