diff --git a/lcci/03.02.Min Stack/README.md b/lcci/03.02.Min Stack/README.md index 5eae63b1e46bc..a3531641b5b1d 100644 --- a/lcci/03.02.Min Stack/README.md +++ b/lcci/03.02.Min Stack/README.md @@ -97,6 +97,46 @@ class MinStack { */ ``` +### **TypeScript** + +```ts +class MinStack { + stack: number[]; + mins: number[]; + constructor() { + this.stack = []; + this.mins = []; + } + + push(x: number): void { + this.stack.push(x); + this.mins.push(Math.min(this.getMin(), x)); + } + + pop(): void { + this.stack.pop(); + this.mins.pop(); + } + + top(): number { + return this.stack[this.stack.length - 1]; + } + + getMin(): number { + return this.mins.length == 0 ? Infinity : this.mins[this.mins.length - 1]; + } +} + +/** + * Your MinStack object will be instantiated and called as such: + * var obj = new MinStack() + * obj.push(x) + * obj.pop() + * var param_3 = obj.top() + * var param_4 = obj.getMin() + */ +``` + ### **...** ``` diff --git a/lcci/03.02.Min Stack/README_EN.md b/lcci/03.02.Min Stack/README_EN.md index 7a624eb1b275f..33b6adf3b9bab 100644 --- a/lcci/03.02.Min Stack/README_EN.md +++ b/lcci/03.02.Min Stack/README_EN.md @@ -108,6 +108,46 @@ class MinStack { */ ``` +### **TypeScript** + +```ts +class MinStack { + stack: number[]; + mins: number[]; + constructor() { + this.stack = []; + this.mins = []; + } + + push(x: number): void { + this.stack.push(x); + this.mins.push(Math.min(this.getMin(), x)); + } + + pop(): void { + this.stack.pop(); + this.mins.pop(); + } + + top(): number { + return this.stack[this.stack.length - 1]; + } + + getMin(): number { + return this.mins.length == 0 ? Infinity : this.mins[this.mins.length - 1]; + } +} + +/** + * Your MinStack object will be instantiated and called as such: + * var obj = new MinStack() + * obj.push(x) + * obj.pop() + * var param_3 = obj.top() + * var param_4 = obj.getMin() + */ +``` + ### **...** ``` diff --git a/lcci/03.02.Min Stack/Solution.ts b/lcci/03.02.Min Stack/Solution.ts new file mode 100644 index 0000000000000..1a9cf6ed0b7cd --- /dev/null +++ b/lcci/03.02.Min Stack/Solution.ts @@ -0,0 +1,35 @@ +class MinStack { + stack: number[]; + mins: number[]; + constructor() { + this.stack = []; + this.mins = []; + } + + push(x: number): void { + this.stack.push(x); + this.mins.push(Math.min(this.getMin(), x)); + } + + pop(): void { + this.stack.pop(); + this.mins.pop(); + } + + top(): number { + return this.stack[this.stack.length - 1]; + } + + getMin(): number { + return this.mins.length == 0 ? Infinity : this.mins[this.mins.length - 1]; + } +} + +/** + * Your MinStack object will be instantiated and called as such: + * var obj = new MinStack() + * obj.push(x) + * obj.pop() + * var param_3 = obj.top() + * var param_4 = obj.getMin() + */ \ No newline at end of file