File tree 2 files changed +77
-0
lines changed
2 files changed +77
-0
lines changed Original file line number Diff line number Diff line change @@ -399,6 +399,47 @@ public class MinStack {
399
399
*/
400
400
```
401
401
402
+ #### Swift
403
+
404
+ ``` swift
405
+ class MinStack {
406
+ private var stack: [Int ]
407
+ private var minStack: [Int ]
408
+
409
+ init () {
410
+ stack = []
411
+ minStack = [Int .max ]
412
+ }
413
+
414
+ func push (_ x : Int ) {
415
+ stack.append (x)
416
+ minStack.append (min (x, minStack.last ! ))
417
+ }
418
+
419
+ func pop () {
420
+ stack.removeLast ()
421
+ minStack.removeLast ()
422
+ }
423
+
424
+ func top () -> Int {
425
+ return stack.last !
426
+ }
427
+
428
+ func getMin () -> Int {
429
+ return minStack.last !
430
+ }
431
+ }
432
+
433
+ /**
434
+ * Your MinStack object will be instantiated and called as such:
435
+ * let obj = MinStack();
436
+ * obj.push(x);
437
+ * obj.pop();
438
+ * let param_3 = obj.top();
439
+ * let param_4 = obj.getMin();
440
+ */
441
+ ```
442
+
402
443
<!-- tabs:end -->
403
444
404
445
<!-- solution:end -->
Original file line number Diff line number Diff line change
1
+ class MinStack {
2
+ private var stack : [ Int ]
3
+ private var minStack : [ Int ]
4
+
5
+ init ( ) {
6
+ stack = [ ]
7
+ minStack = [ Int . max]
8
+ }
9
+
10
+ func push( _ x: Int ) {
11
+ stack. append ( x)
12
+ minStack. append ( min ( x, minStack. last!) )
13
+ }
14
+
15
+ func pop( ) {
16
+ stack. removeLast ( )
17
+ minStack. removeLast ( )
18
+ }
19
+
20
+ func top( ) -> Int {
21
+ return stack. last!
22
+ }
23
+
24
+ func getMin( ) -> Int {
25
+ return minStack. last!
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Your MinStack object will be instantiated and called as such:
31
+ * let obj = MinStack();
32
+ * obj.push(x);
33
+ * obj.pop();
34
+ * let param_3 = obj.top();
35
+ * let param_4 = obj.getMin();
36
+ */
You can’t perform that action at this time.
0 commit comments