leetcode【剑指offer DAY1-栈】

45 阅读1分钟

1、【栈 to 队列】两个栈实现队列

  • 入队:栈A进行入队列
  • 出队:栈A全部出栈进入栈B,然后栈B出栈 image.png

2、【最小栈】包含min()的栈

①. 两个栈st = stack()、st_min = stack_min()

  • st保存数据
  • st_min保存最小值

②. 进阶:使用空间复杂度为o(1)实现

  • 使用min_val表示当前最小值
  • 栈中存放的元素
    • 当栈空时,存入0
    • 入栈元素为(x-min_val)
    • 出栈时需要更新min_val
      • 若当前元素小于0,那么就是最小值
      • 否则,min_val更新
  1. 【单调栈】