栈与队列

82 阅读1分钟

232. 用栈实现队列

这个题目的思路是用两个栈模拟队列的头和尾,关键是头节点元素的获取。

225. 用队列实现栈

关键思路是 将队列的尾部当作栈顶 将头元素pop掉的时候要注意方法

20. 有效的括号

用栈来维护就是这一题的正确做法

1047. 删除字符串中的所有相邻重复项

用一个栈轻松实现

239. 滑动窗口最大值

用一个双端队列简单就能实现

347. 前 K 个高频元素

  • 用一个优先队列来做时间复杂度O(nlog(k))O(n*log(k)) 空间O(n)O(n)
  • 用技术排序的思想时间复杂度能优化到O(n)

150. 逆波兰表达式求值

  • 本题可以看出数字一定是先用后两个,所以想到了用栈存数字然后每次取出栈顶的两个元素进行计算