栈和队列
0 人感兴趣 · 6 次引用
- 最新
- 推荐
【数据结构与算法】粽子树?二叉树 _ 关于堆你不知道的事情
前情提要 本章节是数据结构的堆的相关知识~ 接下来我们即将进入一个全新的空间,对代码有一个全新的视角~ 以下的内容一定会让你对数据结构有一个颠覆性的认识哦!!! ❗以下内容以C语言的方式实现,对于数据结构来说最重要的是思想哦❗
leetcode 23. Merge k Sorted Lists 合并 K 个升序链表 (困难)
取每个Linked List的最小节点放入一个heap中,排成最小堆,然后取出堆顶最小的元素放入合并的List中,然后将该节点在其对应的List中的下一个节点插入到heap中,循环上面步骤。
leetcode 739. Daily Temperatures 每日温度 (中等)
什么是单调栈?单调栈通过维持栈内值的单调递增(递减)性,在整体O(n)的时间内处理需要大小比较的问题。
leetcode 20. Valid Parentheses 有效的括号 (中等)
思路:括号匹配是典型的使用栈来解决的问题。从左向右遍历,每当遇到左括号便放入栈内,遇到右括号则判断其和栈顶的括号是否是统一类型,是则从栈内取出左括号,否则说明字符不串不合法。
leetcode 155. Min Stack 最小栈 (中等)
可以额外建立一个栈(最小值栈),栈顶表示原栈中最小值。插入一个数字时,如果该值小于新栈的栈顶值说明该数是最小值,将其同时插入原栈和最小值栈。取数时,如果原栈的值等于最小值栈的值,说明这个数是原栈中的最小值,原栈和最小值栈需要同时移除该元素。
leetcode 232. Implement Queue using Stacks 用栈实现队列 (简单)
用两个栈来实现一个队列:因为需要得到先入先出的结果,所以必定要通过一个额外栈翻一次数组。这个翻转过程既可以在插入时完成,也可以在取值时完成。