09 2022 档案
摘要:这次差两分钟做出最后一道题 第308场周赛 2389. 和有限的最长子序列 我用的双重循环,时间复杂度挺高的,但是蛮有意思的哈哈哈 class Solution { public: vector<int> answerQueries(vector<int>& nums, vector<int>& q
阅读全文
摘要:这次只做出了三道题 6184. 统计共同度过的日子数 不熟悉api,没用过sscanf,在处理日期字符串的时候耽误了很多时间,最后用的substr()和stoi(stoi还是现场在网上搜的) 没有及时把重复代码提取出去,多写了很多行 class Solution { public: int mont
阅读全文
摘要:管道分写和读端,当写端全部close(),读端read时,会返回0,这样读端就可以此退出循环 while(read(fds[0], &val, sizeof(int)) != 0){} 但是管道如果没有正确的关闭,就会陷入阻塞 例 int p[2]; int main() { pipe(p); in
阅读全文
摘要:一.基础架构 二.后台线程 2.1 Mater Thread 最核心的后台线程,主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新、合并插入缓冲(INSERT BUFFER)、UNDO页的回收等。 内部由多个循环(loop)组成: 主循环(loop) 后台循环(backgrou
阅读全文
摘要:分组背包如何保证每组只取一个 必须从状态方程出发,已知分组背包问题的状态表示是 dp[i][j]: 考虑前i组,体积不超过j的情况下,能获得的最大值 当我们在更新第i组时,i本身没有变,只是将第i组所有元素遍历一遍,尝试更新本组的最大值,不会发生重复选择的情况, 给出一个实例,假定先选择了A,此时
阅读全文
摘要:N:端点数 M:边数 1.Dijkstra dist[1] = 0, dist[i] = +∞ for i ← 1 to n t ← 不在s中的距离最近的点 s ← t 用t更新其他点的距离 时间复杂度分析 dist[1] = 0, dist[i] = +∞ for i ← 1 to n t ← 不
阅读全文
摘要:对于一段数组,当满足以下两个条件时,他就是每一段相同数的首个数字 是数组的第一个元素 s[i] != s[i - 1] 可以以1 1 2 2 2 3 4 5 5 5 6进行模拟 vector<int>::iterator unique(vector<int> &a) { int j = 0; for
阅读全文