码迷,mamicode.com
首页 > 编程语言 > 详细

算法总结——堆栈

时间:2018-12-28 00:10:17      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:规律   递归函数   矩阵   二叉搜索树   bsp   迭代   最小   汉诺塔问题   路径   

先说stack的题目

stack的实现:链表,数组

题目:

(1)简单的:min stack,一个数组实现三个stack

(2)经典的stack问题:经典汉诺塔问题,逆波兰式计算或者产生逆波兰式,简化文件路径,验证括号对是否合法,找出最长有效括号(贪心+stack求解)

(3)涉及tree的遍历问题:tree中序遍历的迭代解法,二叉搜索树的两节点和(two sum思路)

(4)***stack排序问题***:为stack排序,从柱状图里找最大矩形(本质上类似stack排序),构造数组的maxtree(和最大矩形题目类似思路)

(5)蛋疼的其他问题:仅使用递归反转一个stack(两个递归函数,***hard***)

 

再说队列的题目

队列的实现:链表

题目:猫狗队列(链表合并),两个stack实现队列,数组滑动窗口的最大值(类似stack排序做,和柱状里找最大矩形题目解法有点类似,***hard***)

 

最后是堆的题目

题目:

(1)经典问题:合并多个有序链表,行列有序矩阵topK(k*logk解法,j+1,i+1)

(2)***需要观察总结规律的***:数组滑动窗口的最大值(使用优先级队列剔除“过期”的最大值),最大值-最小值<=num的子数组数目(滑动窗口+堆)

 

算法总结——堆栈

标签:规律   递归函数   矩阵   二叉搜索树   bsp   迭代   最小   汉诺塔问题   路径   

原文地址:https://www.cnblogs.com/bonelee/p/10188204.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!