mirror of
https://github.com/chefyuan/algorithm-base.git
synced 2025-08-14 02:12:56 +00:00
添加Go语言题解
This commit is contained in:
@@ -73,4 +73,47 @@ class MinStack {
|
||||
}
|
||||
```
|
||||
|
||||
GO Code:
|
||||
|
||||
```go
|
||||
type MinStack struct {
|
||||
stack []int
|
||||
minStk []int
|
||||
}
|
||||
|
||||
/** initialize your data structure here. */
|
||||
func Constructor() MinStack {
|
||||
return MinStack{
|
||||
stack: []int{},
|
||||
minStk: []int{},
|
||||
}
|
||||
}
|
||||
|
||||
// Push 入栈,如果插入值,当前插入值小于栈顶元素,则入栈,栈顶元素保存的则为当前栈的最小元素
|
||||
func (m *MinStack) Push(x int) {
|
||||
m.stack = append(m.stack, x)
|
||||
if len(m.minStk) == 0 || m.minStk[len(m.minStk) - 1] >= x {
|
||||
m.minStk = append(m.minStk, x)
|
||||
}
|
||||
}
|
||||
|
||||
// Pop 出栈,如果stack出栈等于minStk栈顶元素,则说明此时栈内的最小元素改变了。
|
||||
func (m *MinStack) Pop() {
|
||||
temp := m.stack[len(m.stack) - 1]
|
||||
m.stack = m.stack[: len(m.stack) - 1]
|
||||
if temp == m.minStk[len(m.minStk) - 1] {
|
||||
m.minStk = m.minStk[: len(m.minStk) - 1]
|
||||
}
|
||||
}
|
||||
|
||||
// Top stack的栈顶元素
|
||||
func (m *MinStack) Top() int {
|
||||
return m.stack[len(m.stack) - 1]
|
||||
}
|
||||
|
||||
// GetMin minStk的栈顶元素
|
||||
func (m *MinStack) GetMin() int {
|
||||
return m.minStk[len(m.minStk) - 1]
|
||||
}
|
||||
```
|
||||
###
|
||||
|
Reference in New Issue
Block a user