要求:實現乙個帶有取最小值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...