一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,因为栈和队列这两哥们结构特性比较向对应,所以放到一篇Blog中集中练习
题目题干直接给出对应博客链接,这里只给出简单思路、代码实现、复杂度分析
题目 | 关键字 | 解题思路 | 时间 | 空间 |
---|---|---|---|---|
有效括号序列 | 辅助栈 | 遇到左括号就将相应匹配的右括号加入栈中,后续如果是合法的,右括号来的顺序就是栈中弹出的顺序 | O(n) | O(n) |
用两个栈实现队列 | 辅助栈 | 定义两个栈, 分别是队列的两头,stackPush为队列尾部,入队使用,stackPop为队列头部,出队使用。第一个栈中栈底元素也就是最后进入第二个栈的栈顶元素就是队列首部元素 | O(1) | O(n) |
最小栈 | < |