算法学习(栈,队列,优先队列相关)

2022-01-07  本文已影响0人  SEU小翔哥

stack<char> stack;
stack.top();
stack.push(num);

LeetCode 20 有效的括号

image.png

LeetCode 71 简化路径(练习)

image.png
image.png

LeetCode 144 二叉树前序遍历

LeetCode 94 二叉树中序遍历(练习)

LeetCode 145 二叉树后序遍历(练习)

LeetCode 341 扁平化嵌套列表迭代器(练习)

image.png

队列

queue<pair<TreeNode,int>> q;
q.push(make_pair(root,0));
TreeNode
node = q.front().first;
int level = q.front().second;

LeetCode 102 二叉树的层序遍历

image.png

LeetCode 107 二叉树的层序遍历II(练习)

image.png

LeetCode 103 二叉树锯齿型层序遍历(练习)

image.png

LeetCode 199 二叉树的右视图(练习)

image.png

LeetCode 279 完全平方数

image.png

LeetCode 127 单词接龙(练习)

image.png
image.png

LeetCode 126 单词接龙II(练习)

image.png
image.png

优先队列,底层实现:堆。默认最大堆

最大堆:priority_queue<int> pq;
pq.push(num)
pq.top()
最小堆: priority_queue<int, vector<int>, greater<int>> pq;
自定义比较函数:priority_queue<int, vector<int>, function<bool(int,int)>> pq(myCmp);
bool myCmp(int a , int b){
return a%10 < b%10;
}

需要学习一下堆的底层实现,有些公司会考堆的白板编程

LeetCode 347 前k个高频元素, 方法优先队列

image.png
image.png
image.png

LeetCode 23 合并k个升序链表(练习)

image.png
上一篇下一篇

猜你喜欢

热点阅读