add new solutions
This commit is contained in:
parent
9c2c959a9b
commit
9a10695e8c
29 changed files with 1074 additions and 2 deletions
44
solutions/1/q155/solution.go
Normal file
44
solutions/1/q155/solution.go
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
package q155
|
||||
|
||||
type stackElem struct {
|
||||
val, min int
|
||||
}
|
||||
|
||||
type MinStack struct {
|
||||
stack []stackElem
|
||||
}
|
||||
|
||||
func Constructor() MinStack {
|
||||
return MinStack{}
|
||||
}
|
||||
|
||||
func (s *MinStack) Push(val int) {
|
||||
minVal := val
|
||||
if len(s.stack) > 0 {
|
||||
minVal = min(minVal, s.GetMin())
|
||||
}
|
||||
s.stack = append(s.stack, stackElem{
|
||||
val: val, min: minVal,
|
||||
})
|
||||
}
|
||||
|
||||
func (s *MinStack) Pop() {
|
||||
s.stack = s.stack[:len(s.stack)-1]
|
||||
}
|
||||
|
||||
func (s *MinStack) Top() int {
|
||||
return s.stack[len(s.stack)-1].val
|
||||
}
|
||||
|
||||
func (s *MinStack) GetMin() int {
|
||||
return s.stack[len(s.stack)-1].min
|
||||
}
|
||||
|
||||
/**
|
||||
* Your MinStack object will be instantiated and called as such:
|
||||
* obj := Constructor();
|
||||
* obj.Push(val);
|
||||
* obj.Pop();
|
||||
* param_3 := obj.Top();
|
||||
* param_4 := obj.GetMin();
|
||||
*/
|
||||
Loading…
Add table
Add a link
Reference in a new issue