Skip to content

Commit 69a86a0

Browse files
authored
feat: add swift implementation to lcof problem: No.30 (doocs#2897)
1 parent 333fabc commit 69a86a0

File tree

2 files changed

+77
-0
lines changed

2 files changed

+77
-0
lines changed

lcof/面试题30. 包含min函数的栈/README.md

+41
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,47 @@ public class MinStack {
399399
*/
400400
```
401401

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+
402443
<!-- tabs:end -->
403444

404445
<!-- solution:end -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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+
*/

0 commit comments

Comments
 (0)