Skip to content

Commit fca838a

Browse files
committed
update leetcode 155
1 parent 29d9908 commit fca838a

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

leetcode/0155.min-stack/min_stack.go

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,23 @@ package leetcode
22

33
// MinStack MinStack
44
type MinStack struct {
5-
stack, min []int
6-
length int
5+
stack [][2]int
6+
length int
77
}
88

99
// Constructor initialize your data structure here.
1010
func Constructor() MinStack {
11-
return MinStack{stack: make([]int, 0), min: make([]int, 0), length: 0}
11+
return MinStack{stack: make([][2]int, 0), length: 0}
1212
}
1313

1414
// Push 入栈
1515
func (s *MinStack) Push(x int) {
16-
s.stack = append(s.stack, x)
17-
if s.length == 0 || s.min[s.length-1] > x {
18-
s.min = append(s.min, x)
19-
} else {
20-
s.min = append(s.min, s.min[s.length-1])
16+
min := x
17+
if s.length > 0 && s.GetMin() < x {
18+
min = s.GetMin()
2119
}
22-
s.length = s.length + 1
20+
s.stack = append(s.stack, [2]int{x, min})
21+
s.length++
2322
}
2423

2524
// Pop 出栈
@@ -28,7 +27,6 @@ func (s *MinStack) Pop() {
2827
return
2928
}
3029
s.stack = s.stack[:s.length-1]
31-
s.min = s.min[:s.length-1]
3230
s.length = s.length - 1
3331
}
3432

@@ -37,13 +35,13 @@ func (s *MinStack) Top() int {
3735
if s.length == 0 {
3836
return 0
3937
}
40-
return s.stack[s.length-1]
38+
return s.stack[s.length-1][0]
4139
}
4240

4341
// GetMin 返回栈中的最小值
4442
func (s *MinStack) GetMin() int {
4543
if s.length == 0 {
4644
return 0
4745
}
48-
return s.min[s.length-1]
46+
return s.stack[s.length-1][1]
4947
}

0 commit comments

Comments
 (0)