auto-generated entry for Min Stack. the solution files are available below.
solution files
- C++
min-stack/synced-solution.cpp - Python
min-stack/synced-solution.py - TypeScript
min-stack/synced-solution.ts
Collected C++, Python, TypeScript solutions for min stack. Add a dedicated write-up later if you want deeper notes.
auto-generated entry for Min Stack. the solution files are available below.
min-stack/synced-solution.cppmin-stack/synced-solution.pymin-stack/synced-solution.tsclass MinStack:
def __init__(self):
self.stack = []
self.min_stack = []
def push(self, val: int) -> None:
self.stack.append(val)
if not self.min_stack or val <= self.min_stack[-class="syntax-number">1]:
self.min_stack.append(val)
def pop(self) -> None:
val = self.stack.pop()
if val == self.min_stack[-class="syntax-number">1]:
self.min_stack.pop()
def top(self) -> int:
return self.stack[-class="syntax-number">1]
def getMin(self) -> int:
return self.min_stack[-class="syntax-number">1]
class=class="syntax-string">"syntax-comment"># Your MinStack object will be instantiated and called as such:
class=class="syntax-string">"syntax-comment"># obj = MinStack()
class=class="syntax-string">"syntax-comment"># obj.push(val)
class=class="syntax-string">"syntax-comment"># obj.pop()
class=class="syntax-string">"syntax-comment"># param_3 = obj.top()
class=class="syntax-string">"syntax-comment"># param_4 = obj.getMin()
class MinStack {
private:
stack<int> st;
stack<int> min_st;
public:
MinStack() {
}
void push(int val) {
st.push(val);
if (min_st.empty() || val <= min_st.top()) {
min_st.push(val);
}
}
void pop() {
int val = st.top();
st.pop();
if (val == min_st.top()) {
min_st.pop();
}
}
int top() {
return st.top();
}
int getMin() {
return min_st.top();
}
};
class=class="syntax-string">"syntax-comment">/**
* 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();
*/
class MinStack {
private stack: number[] = [];
private minStack: number[] = [];
push(val: number): void {
this.stack.push(val);
if (this.minStack.length === class="syntax-number">0 || val <= this.minStack[this.minStack.length - class="syntax-number">1]) {
this.minStack.push(val);
}
}
pop(): void {
const val = this.stack.pop();
if (val === this.minStack[this.minStack.length - class="syntax-number">1]) {
this.minStack.pop();
}
}
top(): number {
return this.stack[this.stack.length - class="syntax-number">1];
}
getMin(): number {
return this.minStack[this.minStack.length - class="syntax-number">1];
}
}