題目描述
定義棧的數據結構,請在該類型中實現一個能夠得到棧最小元素的min函數。
發現很多用java的代碼很多比c++短,喵~
實現幾個函數的功能
//新建一輔助棧,使得輔助棧從上到下存儲的應該是最小值->次小值->次次小值……
class Solution {
public:
stack<int> dataStack, minStack;
void push(int val) {
//將元素壓入儲存數據的棧
dataStack.push(val);
//當儲存最小元素的棧沒有元素的時候,將當前元素壓入最小元素棧。否則,先比較大小,壓入較小的元素入最小元素棧。
if (minStack.empty()) {
minStack.push(val);
}
else{
int min = minStack.top();
val<=min?minStack.push(val):minStack.push(min);
}
}
//pop的時候,數據棧輔助棧均彈出頂元素。
void pop() {
dataStack.pop();
minStack.pop();
}
int top() {
return dataStack.top();
}
int min() {
return minStack.top();
}
};