250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(Leet Code c++)Min Stack 본문
728x90
반응형
155. Min Stack
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
Implement the MinStack class:
- MinStack() initializes the stack object.
- void push(val) pushes the element val onto the stack.
- void pop() removes the element on the top of the stack.
- int top() gets the top element of the stack.
- int getMin() retrieves the minimum element in the stack.
Example 1:
Input ["MinStack","push","push","push","getMin","pop","top","getMin"] [[],[-2],[0],[-3],[],[],[],[]] Output [null,null,null,null,-3,null,0,-2] Explanation MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); // return -3 minStack.pop(); minStack.top(); // return 0 minStack.getMin(); // return -2
Constraints:
- -231 <= val <= 231 - 1
- Methods pop, top and getMin operations will always be called on non-empty stacks.
- At most 3 * 104 calls will be made to push, pop, top, and getMin.
Class로 min stack 구현.
class MinStack {
public:
/** initialize your data structure here. */
int data[100000];
int index;
MinStack() {
index = 0;
}
void push(int val) {
data[index++] = val;
}
void pop() {
index--;
}
int top() {
return data[index - 1];
}
int getMin() {
int res = INT_MAX;
for(int i = 0; i < index; i++){
res = min(res, data[i]);
}
return res;
}
};
/**
* Your MinStack object will be instantiated and called as such:
* MinStack* obj = new MinStack();
* obj->push(val);
* obj->pop();
* int param_3 = obj->top();
* int param_4 = obj->getMin();
*/
728x90
반응형
'Leet Code 알고리즘' 카테고리의 다른 글
(Leet Code c++)Integer to Roman (0) | 2021.07.19 |
---|---|
(Leet Code c++)Intersection of Two Linked Lists (0) | 2021.07.19 |
(Leet Code c++)Binary Tree Postorder Traversal (0) | 2021.07.19 |
(Leet Code c++)Binary Tree Preorder Traversal (0) | 2021.07.17 |
(Leet Code c++)Linked List Cycle (0) | 2021.07.17 |