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

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容