Go语言实现:【剑指offer】包含min函数的栈

该题目来源于牛客网《剑指offer》专题。

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数。

时间复杂度应为O(1)。

Go语言实现:

var myList = list.New()
var minList = list.New()

func push(value int) {
   myList.PushFront(value)
   if minList.Len() == 0 {
      minList.PushFront(value)
   }
   if value <= minList.Front().Value.(int) {
      minList.PushFront(value)
   }
}

func pop() {
   if myList.Front().Value == minList.Front().Value {
      minList.Remove(minList.Front())
   } 
   myList.Remove(myList.Front())
}

func top() int {
   return myList.Front().Value.(int)
}

func min() int {
   return minList.Front().Value.(int)
}
posted @ 2019-12-03 16:03  南方有嘉木1993  阅读(208)  评论(0编辑  收藏  举报