タイトルの説明
push、pop、top操作をサポートし、一定の時間で最小の要素を取得できるスタックを設計します。
- (x)-push要素xをスタックにプッシュします。
- スタックの最上部にある要素をpop()-deleteします。
- top()-スタックの一番上の要素を取得します。
- getMin()-スタック内の最小の要素を取得します。
例:
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin(); --> 返回 -3.
minStack.pop();
minStack.top(); --> 返回 0.
minStack.getMin(); --> 返回 -2.
回答コード:
class MinStack {
stack<int> m_data;
stack<int> m_min;
public:
/** initialize your data structure here. */
MinStack() {
}
void push(int x) {
m_data.push(x);
if(m_min.empty() || m_min.top() >= x){
m_min.push(x);
}
}
void pop() {
if(m_data.top() == m_min.top()){
m_min.pop();
}
m_data.pop();
}
int top() {
return m_data.top();
}
int getMin() {
return m_min.top();
}
};
別の意見がある場合は、メッセージを残して議論してください!!!