190. 偏爱的字符✅ 模拟:用map存偏爱字符,遇到非偏爱字符时同时向两边搜即可 #include<bits/stdc++.h> using namespace std; void modify(int pos, string &res, const string &str, unordered_map<char…
1.小美的平衡矩阵 一开始暴力搜索,超时了 因此必须优化,时间主要浪费在了“计数一个范围内的0和1的个数” 所以用一个二维前缀和,psum[row][col] 表示 grid[row][0:col] 中1的个数,也就是预计算 这样在执行“计数一个范围内的0和1的个数”,只需要遍历每一行的前缀和,从二维降到了一维 #include <bits/…
More content:力扣题记之动态规划 70. 爬楼梯✅ dp数组下标代表当前在第几阶,数组value表示到这一阶的方法数(即爬到第i层楼梯,有dp[i]种方法) 遍历顺序从前往后 但是一开始没想明白为什么状态转移公式是dp[i] = dp[i-1] + dp[i-2] 只是找规律推出来的 class Solution {public: in…
More content:LeetCode hot100@回溯 回溯算法可解决的问题类型: 组合问题:N个数里面按一定规则找出k个数的集合 17. 电话号码的字母组合 39. 组合总和 40. 组合总和 II 216. 组合总和 III 77. 组合 切割问题:一个字符串按一定规则有几种切割方式 93. 复原 IP 地址 131. 分割回文串 子集…
More content:力扣题记之回溯 回溯是递归的副产物,只要有递归就会有回溯 回溯算法模板:回溯递归是往深处找,内部for遍历是横向找 void backtracking(参数) { if (终止条件) { 存放结果; return; } for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) { 处理节点; backtrack…
优先队列: 大根堆: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;…
More content:力扣题记之栈 栈:stack<int> sk; 队列: queue<TreeNode*> q; 单端队列 deque<char> dq; 双端队列(更底层) 20. 有效的括号✅ 刷包浆的题 class Solution { public: bool isValid(string s) …
要点 1.服务器程序通常需要处理三类事件:I/O事件,信号及定时事件。有两种事件处理模式: Reactor模式:要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生(可读、可写),若有,则立即通知工作线程(逻辑单元),将socket可读可写事件放入请求队列,交给工作线程处理。 Proactor模式:将所有的I/O操作都交给主线程和内核来…