力扣题记之回溯
More content:LeetCode hot100@回溯 回溯算法可解决的问题类型: 组合问题:N个数里面按一定规则找出k个数的集合 17. 电话号码的字母组合 39. 组合总和 40. 组合总和 II 216. 组合总和 III 77. 组合 切割问题:一个字符串按一定规则有几种切割方式 93. 复原 IP 地址 131. 分割回文串 子集…
LeetCode hot100@回溯
More content:力扣题记之回溯 回溯是递归的副产物,只要有递归就会有回溯 回溯算法模板:回溯递归是往深处找,内部for遍历是横向找 void backtracking(参数) { if (终止条件) { 存放结果; return; } for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) { 处理节点; backtrack…
LeetCode hot100@堆
优先队列: 大根堆:priority_queue<int> maxHeap; 小根堆:priority_queue<int, vector<int>, greater<int>> minHeap; 自定义比较器: struct Comparator { bool operator()(ListNode *a,ListNode…
力扣题记之栈
More content:LeetCode hot100@栈 96. 下一个更大元素 I✅ 单调栈 + 哈希 class Solution { public: vector<int> dailyTemperatures(vector<int>& temperatures) { stack<int> sk;…
LeetCode hot100@栈
More content:力扣题记之栈 栈:stack<int> sk; 队列: queue<TreeNode*> q; 单端队列 deque<char> dq; 双端队列(更底层) 20. 有效的括号✅ 刷包浆的题 class Solution { public: bool isValid(string s) …
基于 Linux 的轻量级 HTTP 服务器
要点 1.服务器程序通常需要处理三类事件:I/O事件,信号及定时事件。有两种事件处理模式: Reactor模式:要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生(可读、可写),若有,则立即通知工作线程(逻辑单元),将socket可读可写事件放入请求队列,交给工作线程处理。 Proactor模式:将所有的I/O操作都交给主线程和内核来…
力扣题记之二叉树
More content:LeetCode hot100@二叉树 257. 二叉树的所有路径❌ 递归回溯 递归三步走,但要注意在二叉树的递归中单层逻辑一般要包括中左右三部分(顺序依前中后遍历而定) class Solution { public: void traversal(TreeNode *cur, vector<string> …
Linux网络编程 Part5 libevent
概述 优点: 开源 精简 支持跨平台 专注于网络通信 源码包安装步骤:可参考具体README文件 ./configure检查安装环境,生成makefile make生成.o和可执行文件 sudo make install 将必要的资源拷贝至系统指定目录 进入sample目录,运行demo验证是否安装成功 编译使用库的.c时,需要加-levent选项…
LeetCode hot100@二叉树
More content:力扣题记之二叉树 链式存储的二叉树节点定义方式: struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; 二叉树递归求深度用前序,求高度用后序 C+…