摘要:
这次差两分钟做出最后一道题 第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 阅读全文
摘要:
C语言union及位域 1.union union就相当于一个类型不固定的变量,变量大小由union内最长的变量决定,存储空间共享,访问内部不同的变量,就会以相应的变量规范对内存进行解析,以如下union为例 typedef union{ uint32_t v1; int32_t v2; } uni 阅读全文
摘要:
字符串哈希 题目 给定一个长度为 n 的字符串,再给定 m 个询问,每个询问包含四个整数 $l_1,r_1,l_2,r_2$,请你判断 $[l_1,r_1]$ 和 $[l_2,r_2]$ 这两个区间所包含的字符串子串是否完全相同。字符串中只包含大小写英文字母和数字。 思路 利用哈希的思想,将一段字符 阅读全文
摘要:
为什么getline第一个参数是指针的指针? 因为需要修改指针的值,如下代码为例 void change(char *val) { val = "456789"; } void change_2(char **pointer) { *pointer = "456789"; } int main() 阅读全文