- 博客(110)
- 收藏
- 关注
原创 Python asyncio
Coroutine Function 是由 asyncio定义,调用Coroutine Function得到的返回值是Coroutine Obj,Task 没有控制权,没有办法控制event_loop 执行某个Task,只能说明目前在等待哪个Task执行完毕或已准备好执行,由event_loop 控制由哪个Task执行;建立event_loop 概念,上面event_loop 可以理解为大脑,下面是若干个可执行的Task;Event_loop 一旦开始运行Task,那如何使得这个程序运行?
2025-04-11 22:47:46
269
原创 C++ 并发编程
https://blog.youkuaiyun.com/fengbingchun/article/details/73521630https://blog.youkuaiyun.com/fengbingchun/article/details/78649260https://blog.youkuaiyun.com/u012507022/article/details/85909567
2025-03-02 16:20:27
23
原创 场景题总结
大数据去重可以是用bitmap,可以分批次读入内存(将Bitmap按照一定的规则进行划分(如按照数据区间划分,0-10000是一个Bitmap),将其分成若干个较小的区块,每个区块对应一个Bitmap。(存储用户数据(基本信息、行为数据如点击历史、偏好设置),广告数据(存储广告的基本信息,投放规则,排期信息等),广告投放记录(记录广告的展示、点击等行为)):使用位图,每个位只代表整数是否存在,遍历每个读取到的整数,将位图中对应索引的值设为true,遍历位图,按顺序将值位true的数写入文件。
2025-02-20 22:18:30
63
原创 链表算法总结
那么a - c = (k - 1)(b + c) 剩余的距离一定是环长的倍数,那么slow 和 head 每次都移动一步,一定能够在入口相遇相当于slow再里面兜圈子,如果k-1=1,那么兜。
2025-02-18 16:03:04
42
原创 二分算法总结
2529.正整数和负整数的最大计数 https://leetcode.cn/problems/maximum-count-of-positive-integer-and-negative-integer/2517.礼盒的最大甜蜜度 https://leetcode.cn/problems/maximum-tastiness-of-candy-basket/2563.统计公平数对的数目 https://leetcode.cn/problems/count-the-number-of-fair-pairs/
2025-02-18 15:25:05
34
原创 二叉树与递归 & 回溯
枚举每个位置应该选哪个数,并且为了避免重复,从比前一个数大的开始。每个元素选或者不选(0/1 背包也是类似的思路)以输出为视角,枚举子串的结束点。每个结点都是答案,都需要保存。
2025-02-18 15:24:39
26
原创 计算机网络面经
零窗口如果接收方没有能力接收数据,就会将接收窗口设置为0,这时发送方必须暂停发送数据,但是会启动一个持续计时器(persistence timer),到期后发送一个大小为1字节的探测数据包,以查看接收窗口状态。如果接收方能够接收数据,就会在返回的报文中更新接收窗口大小,恢复数据传送。
2025-02-09 21:31:21
1272
原创 C++友元和函数重载
1、友元关系的引入对于一个Point类,用来保存一个坐标,即它有两个实数型变量是它的坐标,那么我们现在想要计算点与点之间的距离,这个函数要放在哪里比较合适?①放在类中作为类的成员函数吗?但是这个函数不属于单独的一个点,也不属于Point类。②放在类的外面定义为普通函数吗?但是这样就体现不了这个函数与Point类的关系,并且不能直接访问点的坐标(私有成员)所以这里就引入了友元关系也就是说通过友元关系,一个类的成员函数或者一个普通函数可以去访问封装在另一个类中的。
2025-02-09 16:46:06
380
原创 Linux系统面经
文件或目录,也可用于重命名文件或目录。,支持 HTTP、HTTPS、FTP 等多种协议,可以通过指定 URL 地址来下载文件,并支持断点续传等功能。,能显示进程的 PID、用户、占用 CPU 和内存等信息,可通过参数组合查看更详细或特定条件的进程信息。,可以监听网络接口上传输的数据包,并根据用户指定的条件进行过滤和显示,常用于网络故障排查和网络安全分析。使用时要谨慎,因为删除的文件或目录通常难以恢复,可通过参数实现递归删除目录等功能。文件内容,支持向上和向下翻页,还可以进行搜索等操作,按Q键退出查看。
2025-02-08 00:48:48
825
原创 MySQL面经
是一个操作序列,不可分割的工作单位,以begin transaction开始,以rollback/commit结束在一个事务内多次查询某个符合查询条件的「记录数量」,如果出现前后两次查询到的记录数量不一样的情况,就意味着发生了「幻读」现象。假设有 A 和 B 这两个事务同时在处理,事务 A 先开始从数据库查询账户余额大于 100 万的记录,发现共有 5 条,然后事务 B 也按相同的搜索条件也是查询出了 5 条记录。
2025-02-07 17:23:09
921
原创 数据结构与算法面经
换句话说,如果在排序前两个元素 A 和 B 的值相等,并且 A 在 B 的前面,那么在排序后 A 仍然在 B 的前面,这样的排序就是稳定排序。快速排序是不稳定排序算法,不适合排序稳定的场景,快速排序是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短;的优势,将大文件分割成多个子文件,分配到不同的处理器或计算节点上进行排序和合并,大大提高处理速度,缩短大文件合并的时间。例如,在外部排序中常用的多路归并算法,就是归并排序在大文件处理场景下的一种应用。
2025-02-07 16:45:27
773
原创 操作系统面经
*本质区别:**进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位**在开销方面:**每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小**稳定性方面:**进程中某个线程如果崩溃了,可能会导致整个进程都崩溃。而进程中的子进程崩溃,并不会影响其他进程。;
2025-02-07 16:34:45
241
原创 字节序与Socket编程
字节序分为大端字节序(Big-Endian) 和小端字节序(Little-Endian)。大端字节序是指一个整数的最高位字节(23 ~ 31 bit)存储在内存的低地址处,低位字节(0 ~ 7 bit)存储在内存的高地址处;小端字节序则是指整数的高位字节存储在内存的高地址处,而则存储在内存的。(小端低对低,高对高;大端符合人的阅读顺序)Linux是x86架构,为小端字节序。
2025-02-04 23:19:45
887
原创 C++ 构造函数和析构函数
这个语句,实际上是调用了复制构造函数,将test的值初始化给了临时对象,然后fun2()消亡,test对象也消亡了,但是临时对象存在于表达式myclockOne=fun2()中,计算完这个表达式后,临时对象就消失了。②调用函数时候,形参为该类的对象,主函数中的对象作为实参传入形参,形参把值拷贝下来后,就与实参断了联系 ,这里注意是值传递才会调用 ,引用传递不会。析构函数,其实就是构造函数的相反操作,构造函数是创建对象时候,用来给对象的成员数据赋值的,而析构函数是用了清理对象的。①对象的生命周期结束。
2025-02-04 15:30:24
850
原创 操作系统笔记
记录不是很清楚的地方or重难点部分(加**),以及面试常见题,主要参考小林coding & 各大面经。小林coding链接:计算机网络updating …
2025-01-15 22:24:18
237
原创 单调栈与单调队列
遍历,当遍历完6 3 2 5后,对于元素2进行分析:下标在元素2之前的数,有两种情况:1. 比2大,那2不可能是它的答案,因为要找的是下一个更大的数。1475. 商品折扣后的最终价格 https://leetcode.cn/problems/final-prices-with-a-special-discount-in-a-shop/1019. 链表中的下一个更大节点 https://leetcode.cn/problems/next-greater-node-in-linked-list/
2025-01-14 16:04:17
793
原创 双指针与滑动窗口
题意是找到不同两个数使得它们相加和为target,数组有序利用数组有序的性质,判断指针前后的区间的性质例如:2 3 4 6 8, target 92 + 8 = 10 > 9, 因为非递减序列,2都会大等于2,所以 2之后的每个数和8相加都会 > 9,eg 3+8,4+8,6+8…。在这种情况下,已经不可能有解。造成无解的原因是因为 8 这个数 太大, 因此将r指针左移去除8。2 + 6 = 8 < 9, 因为非递减序列,所以 6相加都会 < 9,eg 2+4,2+3,…
2025-01-03 17:31:09
791
原创 牛客周赛 Round 74
因此我们复制一下数组后排序,得到排序后的数组,并且映射一下长为m的子数组的首尾元素,此时包含符合题目条件的所有情况。一开始对每张牌种类不是已知的,已知的是每种牌的牌数。题意是问是否存在从数组中选出长为m的子数组,将剩下的n-m进行排序后,将该子数组找一个位置插入后保持整个序列递增后递减。我们拿出的连续 m 个数必然是有序的,否则不符合题意。思路就是相当于把其中一种明牌,保证任取两张都不会导致种类重复 的 最坏情况就是预知种类最多的张数。首先考虑数组不能有重复元素,因为重复无法保证严格单调,所以必然无解。
2024-12-30 21:02:06
492
原创 动态规划dp
统计构造好字符串的方案数 https://leetcode.cn/problems/count-ways-to-build-good-strings/LCR 166. 珠宝的最高价值 https://leetcode.cn/problems/li-wu-de-zui-da-jie-zhi-lcof/递归时不会产生其他负面结果,即无论何时进入递归,只要递归参数相同,结果就相同。从最初状态到最终状态等价,那么从最终状态开始和最初状态开始结果一样。空间优化,当前状态只和前一两个状态有关,优化到O(1)
2024-12-29 16:39:37
392
原创 Educational Codeforces Round 96 (Rated for Div. 2) E. String Reversal 树状数组
题意:将一个字符串只能通过相邻字符交换从而反转,问需要多少次数思路:我们从末尾开始,往前把字符交换,如果字符串里没有重复字母的话,这样就是最优秀的 , 相邻交换,求逆序对即可 ,但对于有重复字母,我们需要肯定将较前的字母先往前把字符交换,这样次数一定会更少,所有从后往前遍历,记录下标,这样保证前面的字符会首先取得,用栈也可以,然后选择好位置用树状数组求逆序对即可#include <bits/stdc++.h>using namespace std;const int N = 2.
2020-12-03 16:15:28
192
原创 Codeforces Round #672 (Div. 2) C1. Pokémon Army (easy version)
This is the easy version of the problem. The difference between the versions is that the easy version has no swap operations. You can make hacks only if all versions of the problem are solved.Pikachu is a cute and friendly pokémon living in the wild pikac
2020-11-26 22:27:34
190
原创 Codeforces Round #672 (Div. 2) B. Rock and Lever
Danik urgently needs rock and lever! Obviously, the easiest way to get these things is to ask Hermit Lizard for them.Hermit Lizard agreed to give Danik the lever. But to get a stone, Danik needs to solve the following task.You are given a positive intege
2020-11-26 22:20:51
185
原创 Codeforces Round #672 (Div. 2) A
Wheatley decided to try to make a test chamber. He made a nice test chamber, but there was only one detail absent — cubes.For completing the chamber Wheatley needs n cubes. i-th cube has a volume ai.Wheatley has to place cubes in such a way that they wou
2020-11-26 22:02:38
204
原创 Codeforces Round #671 (Div. 2) D2. Sage‘s Birthday (hard version)
outputstandard outputThis is the hard version of the problem. The difference between the versions is that in the easy version all prices ai are different. You can make hacks if and only if you solved both versions of the problem.Today is Sage’s birthday,
2020-11-25 23:28:13
156
原创 Codeforces Round #671 (Div. 2) C. Killjoy
outputstandard outputA new agent called Killjoy invented a virus COVID-2069 that infects accounts on Codeforces. Each account has a rating, described by an integer (it can possibly be negative or very large).Killjoy’s account is already infected and has
2020-11-25 23:22:27
129
原创 2020-09-28
洛谷图的遍历 P3916题目描述给出NN个点,MM条边的有向图,对于每个点vv,求A(v)A(v)表示从点vv出发,能到达的编号最大的点。输入格式第1 行,2 个整数N,MN,M。接下来MM行,每行2个整数U_i,V_iUi,Vi,表示边(U_i,V_i)(Ui,Vi)。点用1, 2,\cdots,N1,2,⋯,N编号。输出格式N 个整数A(1),A(2),\cdots,A(N)A(1),A(2),⋯,A(N)。输入输出样例输入 #1复制4 31 2.
2020-09-28 17:34:00
504
原创 Codeforces 667div3 D.Decrease the Sum of Digits
You are given a positive integer n. In one move, you can increase n by one (i.e. make n:=n+1). Your task is to find the minimum number of moves you need to perform in order to make the sum of digits of n be less than or equal to s.You have to answer t ind
2020-09-08 11:54:53
182
原创 CodeForces 667div3 C.Yet Another Array Restoration
We have a secret array. You don’t know this array and you have to restore it. However, you know some facts about this array:The array consists of n distinct positive (greater than 0) integers.The array contains two elements x and y (these elements are kn
2020-09-08 11:49:01
299
原创 Codeforces Round #661 (Div. 3) Binary String To Subsequences 队列
题意:给你一个01串 要求把他分成不同的子序列 并且子序列中不能有两个相同的数相邻 输出分成最少子序列的个数 并且 输出每个0或者1分别在哪个子序列思路:一开始看到这个题,就想到用栈或者队列来模拟这个过程,vector来存答案,但是栈无法得到最初未配对0或者1出现的位置,所以采用队列,我们开两个队列,一个用来存0的位置,一个用来存1的位置。1.当遇到0时,首先肯定先找有没1和他配对,如果队列1为空的话,说明这个0得属于新的一个序列,就往vector里存答案,如果有的话,往答案里存入队列1里队头序列的
2020-08-06 11:54:45
151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人