题解 | #最大体重的牛#
最大体重的牛
https://www.nowcoder.com/practice/0333d46aec0b4711baebfeb4725cb4de
package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param op string字符串一维数组
* @param vals int整型二维数组
* @return int整型一维数组
*/
func max_weight_cow( op []string , vals [][]int ) []int {
// write code here
ans :=make([]int, 0)
if len(op)==0{
return ans
}
stack := NewMaxCowStack()
for key,val :=range op{
switch val{
case "MaxCowStack" :
stack =NewMaxCowStack()
ans = append(ans,-1)
case "push" :
stack.push(vals[key][0],vals[key][1])
ans = append(ans,-1)
case "pop" :
stack.pop()
ans = append(ans,-1)
case "top" :
ans = append(ans, stack.top())
case "getMax" :
ans = append(ans, stack.getMax())
}
}
return ans
}
type MaxCowStack struct{
Stack []int
Maxstack []int
}
func NewMaxCowStack() *MaxCowStack{
return &MaxCowStack{}
}
func (s *MaxCowStack) push(id int,weight int){
s.Stack=append(s.Stack, weight)
if len(s.Maxstack)==0||weight>=s.Maxstack[len(s.Maxstack)-1]{
s.Maxstack=append(s.Maxstack, weight)
}
}
func (s *MaxCowStack) pop(){
if len(s.Stack)==0{
return
}
weight :=s.Stack[len(s.Stack)-1]
s.Stack=s.Stack[:len(s.Stack)-1]
if weight==s.Maxstack[len(s.Maxstack)-1]{
s.Maxstack=s.Maxstack[:len(s.Maxstack)-1]
}
return
}
func (s *MaxCowStack) top() int{
if len(s.Stack)==0{
return -1
}
return s.Stack[len(s.Stack)-1]
}
func (s *MaxCowStack) getMax() int{
if len(s.Maxstack)==0{
return -1
}
return s.Maxstack[len(s.Maxstack)-1]
}
三奇智元机器人科技有限公司公司福利 88人发布