堆栈(stack): 也可以叫栈。但是不能叫堆,堆是heap。 先入后出 First in last out(FILO) 队列(Queue): 先入先出Fisrt in First out(FIFO) 实战 20. 有效的括号 https://leetcode-cn.com/problems/valid-parentheses/description/ 方法1: 比我之前写的简介 方法2:这样的时间复杂度要比上面的高 实战 21. 用栈实现队列 https://leetcode-cn.com/problems/implement-queue-using-stacks/
优先队列(Priority Queue): 也就是我们中文的“堆” 正常入,按照优先级出(可以是最大的先出,最小的先出,次数最多的先出等等…) 优先队列不需要动手实现,python有库直接调用 最小优先队列(堆顶最小)Mini Heap 最大优先队列(堆顶最大)Max Heap 不同的堆 实战 22. 数据流中的第 K 大元素 https://leetcode-cn.com/problems/kth-largest-element-in-a-stream/ 实战 23. 滑动窗口最大值 https://leetcode-cn.com/problems/sliding-window-maximum/ 方法1 方法2 双端队列 deque 映射(Map): 集合(Set): 解决 hashcollision 哈希碰撞 问题,lies和foes在9的位置重合了,在9这个位置放一个链表,既拉链法。 List和Map,Set对比 HashMap时间复杂度一般都很低,但是TreeMap一般是对于有序的数据来说的。
|