From d575ee93e4358ad4cfd7ef5ce196d2e4e143a342 Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Thu, 23 May 2024 09:08:52 +0100 Subject: [PATCH] Swift Implementation for LCOF 30 --- .../README.md" | 41 +++++++++++++++++++ .../Solution.swift" | 36 ++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23030. \345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210/Solution.swift" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23030. \345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23030. \345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210/README.md" index 7da218b6c8b54..632509df1b53e 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23030. \345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23030. \345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210/README.md" @@ -399,6 +399,47 @@ public class MinStack { */ ``` +#### Swift + +```swift +class MinStack { + private var stack: [Int] + private var minStack: [Int] + + init() { + stack = [] + minStack = [Int.max] + } + + func push(_ x: Int) { + stack.append(x) + minStack.append(min(x, minStack.last!)) + } + + func pop() { + stack.removeLast() + minStack.removeLast() + } + + func top() -> Int { + return stack.last! + } + + func getMin() -> Int { + return minStack.last! + } +} + +/** + * Your MinStack object will be instantiated and called as such: + * let obj = MinStack(); + * obj.push(x); + * obj.pop(); + * let param_3 = obj.top(); + * let param_4 = obj.getMin(); + */ +``` + diff --git "a/lcof/\351\235\242\350\257\225\351\242\23030. \345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210/Solution.swift" "b/lcof/\351\235\242\350\257\225\351\242\23030. \345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210/Solution.swift" new file mode 100644 index 0000000000000..cb81fb2993f11 --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23030. \345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210/Solution.swift" @@ -0,0 +1,36 @@ +class MinStack { + private var stack: [Int] + private var minStack: [Int] + + init() { + stack = [] + minStack = [Int.max] + } + + func push(_ x: Int) { + stack.append(x) + minStack.append(min(x, minStack.last!)) + } + + func pop() { + stack.removeLast() + minStack.removeLast() + } + + func top() -> Int { + return stack.last! + } + + func getMin() -> Int { + return minStack.last! + } +} + +/** + * Your MinStack object will be instantiated and called as such: + * let obj = MinStack(); + * obj.push(x); + * obj.pop(); + * let param_3 = obj.top(); + * let param_4 = obj.getMin(); + */ \ No newline at end of file