Skip to content

Commit e6be3b5

Browse files
authored
feat: add swift implementation to lcci problem: No.03.02 (doocs#2632)
1 parent 7afdf4e commit e6be3b5

File tree

3 files changed

+117
-0
lines changed

3 files changed

+117
-0
lines changed

lcci/03.02.Min Stack/README.md

+40
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,46 @@ public class MinStack {
298298
*/
299299
```
300300

301+
```swift
302+
class MinStack {
303+
private var stk1: [Int]
304+
private var stk2: [Int]
305+
306+
init() {
307+
stk1 = []
308+
stk2 = [Int.max]
309+
}
310+
311+
func push(_ x: Int) {
312+
stk1.append(x)
313+
314+
stk2.append(min(x, stk2.last!))
315+
}
316+
317+
func pop() {
318+
stk1.removeLast()
319+
stk2.removeLast()
320+
}
321+
322+
func top() -> Int {
323+
return stk1.last!
324+
}
325+
326+
func getMin() -> Int {
327+
return stk2.last!
328+
}
329+
}
330+
331+
/**
332+
* Your MinStack object will be instantiated and called as such:
333+
* let obj = MinStack();
334+
* obj.push(x);
335+
* obj.pop();
336+
* let param_3 = obj.top();
337+
* let param_4 = obj.getMin();
338+
*/
339+
```
340+
301341
<!-- tabs:end -->
302342

303343
<!-- end -->

lcci/03.02.Min Stack/README_EN.md

+40
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,46 @@ public class MinStack {
317317
*/
318318
```
319319

320+
```swift
321+
class MinStack {
322+
private var stk1: [Int]
323+
private var stk2: [Int]
324+
325+
init() {
326+
stk1 = []
327+
stk2 = [Int.max]
328+
}
329+
330+
func push(_ x: Int) {
331+
stk1.append(x)
332+
333+
stk2.append(min(x, stk2.last!))
334+
}
335+
336+
func pop() {
337+
stk1.removeLast()
338+
stk2.removeLast()
339+
}
340+
341+
func top() -> Int {
342+
return stk1.last!
343+
}
344+
345+
func getMin() -> Int {
346+
return stk2.last!
347+
}
348+
}
349+
350+
/**
351+
* Your MinStack object will be instantiated and called as such:
352+
* let obj = MinStack();
353+
* obj.push(x);
354+
* obj.pop();
355+
* let param_3 = obj.top();
356+
* let param_4 = obj.getMin();
357+
*/
358+
```
359+
320360
<!-- tabs:end -->
321361

322362
<!-- end -->

lcci/03.02.Min Stack/Solution.swift

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
class MinStack {
2+
private var stk1: [Int]
3+
private var stk2: [Int]
4+
5+
init() {
6+
stk1 = []
7+
stk2 = [Int.max]
8+
}
9+
10+
func push(_ x: Int) {
11+
stk1.append(x)
12+
13+
stk2.append(min(x, stk2.last!))
14+
}
15+
16+
func pop() {
17+
stk1.removeLast()
18+
stk2.removeLast()
19+
}
20+
21+
func top() -> Int {
22+
return stk1.last!
23+
}
24+
25+
func getMin() -> Int {
26+
return stk2.last!
27+
}
28+
}
29+
30+
/**
31+
* Your MinStack object will be instantiated and called as such:
32+
* let obj = MinStack();
33+
* obj.push(x);
34+
* obj.pop();
35+
* let param_3 = obj.top();
36+
* let param_4 = obj.getMin();
37+
*/

0 commit comments

Comments
 (0)