- 博客(70)
- 收藏
- 关注
原创 自动化测试-WebChat
针对基于WebSocket协议的网页端即时通讯系统,主导设计并实施全流程自动化测试方案。通过构建模块化测试框架,完成对核心业务场景(用户登录鉴权、消息同步、实时聊天等)的自动化验证,最终达成测试用例自动化覆盖率85%+设计方向:功能测试、性能测试、兼容性测试、界面测试、易用性测试、安全测试python代码:common · 禊月初三/autoTest-WebChat - 码云 - 开源中国
2025-03-15 22:24:15
308
原创 C++面试突破---C++内存
(struct a里存有struct b,b里有char,int ,double等元素,那b应该从8的整数倍开始存储)。(在 C 语言中,未初始化的放在.bss 段中,初始化的放在 .data 段中,C++ 中不再区分了。内存泄漏是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费。:结构(struct)或联合(union)的数据成员,起始位置要从该成员大小或者成员的子成员大小的整数倍开始。是其内部最大成员的"最宽基本类型成员"的。上的内存分配和释放是⾃动的,速度较。
2024-12-07 13:34:23
658
原创 剑指offer(专项突破)---链表
如果一个操作可能产生新的头节点,则可以尝试在链表的最前面添加一个哨兵节点来简化代码逻辑,降低代码出现问题的可能性。双指针是解决与链表相关的面试题的一种常用技术。前后双指针思路让一个指针提前走若干步,然后将第2个指针指向头节点,两个指针以相同的速度一起走。快慢双指针让快的指针每次走两步而慢的指针每次只走一步。大部分与链表相关的面试题都是考查单向链表的操作。单向链表的特点是只能从前往后遍历而不能从后往前遍历。如果不得不从后往前遍历链表,则可以把链表反转之后再遍历。如果链表中的节点除了有指向下一
2024-12-07 13:33:40
296
原创 剑指offer(专项突破)---字符串
变位词和回文是很有意思的文字游戏。如果两个字符串包含的字符及每个字符出现的次数都相同,只是字符出现的顺序不同,那么它们就是一组变位词。通常可以用一个哈希表来统计每个字符出现的次数,有了哈希表就很容易判断两个字符串是不是一组变位词。回文是一类特殊的字符串。不管是从前往后还是从后往前读取其每一个字符,得到的内容都是一样的。通常可以用两个指针来判断一个字符串是不是回文,要么两个指针从字符串的两端开始向中间移动,要么两个指针从中间开始向两端移动。
2024-12-04 18:36:25
1068
1
原创 C++面试突破---C/C++基础
1.C++特点1.C++特点1. C++在C语言基础上引入了面对对象的机制,同时也兼容C语言。2. C++有三大特性(1)封装。(2)继承。(3)多态;3. C++语言编写出的程序结构清晰、易于扩充,程序可读性好。4. C++生成的代码5. C++更加安全,增加了const常量、引用、四类cast转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)、智能指针、try—catch等等;
2024-12-04 18:32:01
1333
1
原创 剑指offer(专项突破)---数组
数组中的元素在内存中的地址是连续的,因此只需要使用O(1)的时间就可以随机访问数组中的任意元素。如果数组是排序的,应用双指针技术就能够用O(n)的时间在数组中找出两个和为给定值的数字。如果数组中的所有数字都是整数,那么应用双指针技术就可以用O(1)的辅助空间找出和为给定值的子数组。关于子数组的数字之和并没有限定数组中的所有数字都是正数,那么尝试从第1个数字开始累加数组中前面若干数字之和,两个累加的和的差值对应一个子数组的数字之和。这种累加数组中前面若干数字之和的思路,不仅适用于一维数组,还适用于二维
2024-12-01 13:24:48
643
原创 剑指offer(专项突破)---整数
整数在计算机中使用二进制形式表示,每位不是0就是1。位运算是对二进制整数的运算,包括与运算、或运算、非运算、异或运算、左移运算和右移运算。只有深刻理解每种位运算的特点才能在需要的时候灵活地应用合适的位运算解决相应的问题。
2024-11-30 11:42:10
943
2
原创 LeetCode 4.寻找两个中序数组的中位数
的标记位)来找到合适的划分点,并在每次循环中,根据当前的。合并后有序数组左半部分的最大值必然是这两个值中的较大者。合并后有序数组右半部分的最小值必然是这两个值中的较小者。mid1和mid2的 右边( 即右半部分。mid1和mid2的 )左边 即左半部分。当上述两个调整边界的条件都不满足时,说明。首先比较两个数组的大小,确保后续。计算出合并后数组左半部分的长度。右半部分的最小值,所以需要将。左半部分的最大值,所以需要将。左半部分的最大值小于。右半部分的最小值小于。的值,再尝试新的划分。的值,尝试新的划分。
2024-11-24 19:05:45
822
原创 笔试强训week8
众所周知,高考数学中有一个题目是给出12个单项选择,每一个选择的答案是 A,B,C,D 中的一个。但是他有一些条件,首先四个选项的数量必须分别为 na,nb,nc,nd。大科学家dd最近在研究转基因白菜,白菜的基因序列由一串大写英文字母构成,dd经过严谨的推理证明发现,只有当白菜的基因序列呈按位非递减形式时,这株白菜的高附加值将达到最高,于是优秀的dd开始着手修改白菜的基因序列,dd每次修改基因序列的任意位需要的代价是1,dd想知道,修改白菜的基因序列使其高附加值达到最高,所需要的最小代价的是多少。
2024-07-22 18:03:52
923
原创 笔试强训week7
例如:1,4,9,和16都是完全平方数,但是2,3,5,8,11等等不是数据范围:1≤𝑛≤10^4。给定一个𝑛×𝑚的矩阵,矩阵中的数字表示滑雪场各个区域的高度,你可以选择从任意一个区域出发,并滑向任意一个周边的高度严格更低的区域(周边的定义是上下左右相邻的区域)。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱数,求组成aim的最少货币数。有n个果冻排成一排。有一个长为 n 的数组 A ,求满足 0 ≤ a ≤ b < n 的 A[b] - A[a] 的最大值。
2024-06-01 14:28:16
854
原创 笔试强训week6
每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗?她想知道有多少出口是她能到达的,最近的出口离她有多远?
2024-05-28 13:46:50
988
1
原创 笔试强训week5
dd作为体操队队长,在给队员们排队形,体操队形为一个单独的纵列,体操队有n个同学,标号为1∼n,对于i(1≤i≤n)号队员,会有一个诉求(1≤a[i]≤n),表示他想排在a[i]号队员前面,当a[i]=i时,我们认为他没有位置需求,随便排哪儿都行,dd想知道有多少种队形方案,可以满足所有队员的要求。有 n 个活动即将举办,每个活动都有开始时间与活动的结束时间,第 i 个活动的开始时间是 starti ,第 i 个活动的结束时间是 endi ,举办某个活动就需要为该活动准备一个活动主持人。
2024-05-17 19:56:17
1131
原创 AVL树、红黑树
空二叉树是一个 AVL 树如果 T 是一棵 AVL 树,那么其左右子树也是 AVL 树,并且,h 是其左右子树的高度树高为平衡因子:右子树高度 - 左子树高度。
2024-05-14 19:05:18
1143
1
原创 二叉搜索树
如下:空树是二叉搜索树。若二叉搜索树的左子树不为空,则其左子树上所有点的附加权值均小于其根节点的值。若二叉搜索树的右子树不为空,则其右子树上所有点的附加权值均大于其根节点的值。二叉搜索树的左右子树均为二叉搜索树。
2024-05-14 15:31:29
958
1
原创 笔试强训week4
小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3...bn. 如果遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,并 且使得自己的能力值增加bi;给出n个字符串,从第1个字符串一直到第n个字符串每个串取一个字母来构成一个新字符串,新字符串的第i个字母只能从第i行的字符串中选出,这样就得到了一个新的长度为n的字符串,请问这个字符串是否有可能为回文字符串?
2024-05-10 15:49:35
1136
1
原创 笔试强训week3
dd当上了宣传委员,开始组织迎新晚会,已知班里有nnn个同学,每个同学有且仅有一个擅长的声部,把同学们分成恰好mmm组,为了不搞砸节目,每一组里的同学都必须擅长同一个声部,当然,不同组同学擅长同一个声部的情况是可以出现的,毕竟一个声部也可以分成好几个part进行表演,但是他不希望出现任何一组的人过多,否则可能会导致场地分配不协调,也就是说,她希望。若图的拓扑序不唯一,输出任意合法的拓扑序即可。子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组。
2024-05-03 21:22:26
1536
1
原创 C++ 标准库类型map&set
Compare: 比较器的类型,map中的元素是按照key来比较的,缺省情况下按照小于来比 较,一般情况下(内置类型元素)该参数不需要传递,如果无法比较时(自定义类型),需要用户自己显式传递比较规则(一般情况下按照函数指针或者仿函数来传递)(2)Key-Value 模型 ,如: ①统计文件中每个单词出现的次数,统计结果是每个单词都有与其对应的次数:< 单词,单词出现的次数 > ②梁山好汉的江湖绰号:每个好汉都有自己的江湖绰号。使用平衡搜索树(即红黑树)作为其底层,容器中的元素是一个有序的序列。
2024-04-28 13:57:58
640
原创 笔试强训week2
同时在棋盘上的任一点有一个对方的马(如上图的 C𝐶 点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点。棋盘用坐标表示,𝐴 点的坐标为 (0,0)、𝐵 点的坐标为 (𝑛,𝑚) ,马的位置 𝐶 点的坐标为 (𝑋,𝑌)(约定: 𝐶≠𝐴,同时 𝐶≠𝐵)。假设你有一个数组prices,长度为n,其中prices[i]是某只股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益。正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
2024-04-25 17:10:57
1067
原创 笔试强训week1
每次喊到 m-1 的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0... m-1报数....这样下去....直到剩下最后一个小朋友,可以不用表演,并且拿到牛客礼品,请你试着想下,哪个小朋友会得到这份礼品呢?比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现 了6次。,a[n],求最小的区间[l,r],使a[l]+a[l+1]+
2024-04-18 17:51:37
1184
1
原创 C++ 迭代器
要访问顺序容器和关联容器中的元素,需要通过“迭代器(iterator)”进行。迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。
2024-04-14 14:12:10
355
原创 C++ STL
C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。
2024-04-10 20:58:50
331
原创 C++ 标准库类型priority_queue
Type就是数据类型,Container就是容器类型(Container必须是用数组实现的容器,比如vector,deque等等,但不能用 list。STL里面默认用的是vector),Functional就是比较的方式。当需要用自定义的数据类型时才需要传入这三个参数,使用基本数据类型时,只需要传入数据类型,默认是大堆。//升序队列,小顶堆//降序队列,大顶堆//greater和less是std实现的两个仿函数。
2024-04-10 20:19:18
529
原创 贪心算法
贪心算法(greedy algorithm)一个贪心算法总是做出当前最好的选择,也就是说,它期望通过局部最优选择从而得到全局最优的解决方案。---贪心算法(greedy algorithm)是一种解决优化问题的算法,其基本思想是在问题的每个决策阶段,都选择当前看起来最优的选择,即贪心地做出局部最优的决策,以期获得全局最优解。
2024-04-06 18:08:43
3556
1
原创 动态规划问题
第i种物品最多有n[i]件可用,每件体积是v[i],价值是w[i]。给定一个数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子 将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。给定两个长度分别为 N 和 M 的字符串 A 和 B,求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。
2024-04-06 15:07:07
965
原创 C++ 标准库类型List
创建一个没有任何元素的空 list 容器:创建一个包含 n 个元素的 list 容器://创建lt容器,其中包含10个元素,每个元素的值都为相应类型的默认值(int类型的默认值为0)创建一个包含 n 个元素的 list 容器,并为每个元素指定初始值://创建了一个包含10个元素并且值都为5个lt容器。在已有 list 容器的情况下,通过拷贝该容器可以创建新的 list 容器://注意:采用此方式,必须保证新旧容器存储的元素类型一致。
2024-04-01 13:47:52
1433
原创 C++ 标准库类型vector
vector():创建一个空vector//创建一个空vectorvector(int nSize):创建一个vector,元素个数为nSize//创建10个元素的vectorvector(int nSize,const t& t):创建一个vector,元素个数为nSize,且值均为t//创建10个元素的vector,并初始化.vector(const vector&):复制构造函数//复制构造函数。
2024-03-30 13:21:31
741
原创 容斥原理、简单博弈论
所谓采取最优策略是指,若在某一局面下存在某种行动,使得行动后对面面临必败局面,则优先采取该行动。在有向图游戏中,对于每个节点x,设从x出发共有k条有向边,分别到达节点y1, y2, …定义有向图游戏G,它的行动规则是任选某个有向图游戏Gi,并在Gi上行动一步。NIM博弈属于公平组合游戏,但城建的棋类游戏,比如围棋,就不是公平组合游戏。具体方法是,把每个局面看成图中的一个节点,并且从每个局面向沿着合法行动能够到达的下一个局面连有向边。有向图游戏的某个局面必胜,当且仅当该局面对应节点的SG函数值大于0。
2024-03-28 20:09:33
1028
原创 高斯消元、组合计数
2. 通过 C(a, b) = a!/ (a - b)!这个公式求出每个质因子的次数。中p的次数是 n / p + n / p^2 + n / p^3 + ...给定n个0和n个1,它们按照某种顺序排成长度为2n的序列,满足任意前缀中0的个数都不少于1的个数的序列的数量为: Cat(n) = C(2n, n) / (n + 1)首先预处理出所有阶乘取模的余数fact[N],以及所有阶乘取模的逆元infact[N]如果取模的数是质数,可以用费马小定理求逆元。1. 筛法求出范围内的所有质数。
2024-03-28 15:40:36
518
原创 欧拉函数、快速幂、扩展欧几里得算法、中国剩余定理
欧拉函数(Euler's totient function)是一个与正整数n相关的数论函数,通常用。求 m^k mod p,时间复杂度 O(logk)。
2024-03-27 20:55:17
316
原创 质数、约数
约数之和: (p1^0 + p1^1 + ... + p1^c1) * ... * (pk^0 + pk^1 + ... + pk^ck)约数个数: (c1 + 1) * (c2 + 1) * ... * (ck + 1)在大于1的整数中,如果只包含1和本身这两个约数,就被称为质数,或者叫素数。欧几里得算法,也称为辗转相除法,是一种求最大公约数(GCD)的有效算法。如果 N = p1^c1 * p2^c2 * ... *pk^ck。的倍数都被正确地标记为合数,且不会有重复的工作。
2024-03-27 18:59:16
389
原创 最小生成树
生成树是原图的极小连通子图,包含图中所有的顶点,并且有保持图连通的最少的边。在这个定义中,“最小”是指树的所有边的权值之和最小。按照边的权重顺序(从小到大)选择边,确保选择的边不会与已经选择的边形成环,直到形成最小生成树。在一个加权无向连通图中,包含图中全部顶点的、权值之和最小的生成树。从图中的某一顶点开始,逐步增加新的边和顶点,直到形成最小生成树。859. Kruskal算法求最小生成树 - AcWing题库。858. Prim算法求最小生成树 - AcWing题库。: O(n^2+m), 用于稠密图。
2024-03-25 16:21:17
375
原创 最短路算法
(通俗的来讲就是:假设 1 号点到 n 号点是可达的,每一个点同时向指向的方向出发,更新相邻的点的最短距离,通过循环 n-1 次操作,若图中不存在负环,则 1 号点一定会到达 n 号点,若图中存在负环,则在 n-1 次松弛后一定还会更新)其原理为连续进行松弛,在每次松弛时把每条边都更新一下,若在 n-1 次松弛后还能更新,则说明图中有负环,因此无法得出结果,否则就完成。:如果每个抽屉代表一个集合,每一个苹果就可以代表一个元素,假如有n+1个元素放到n个集合中去,其中必定有一个集合里至少有两个元素。
2024-03-23 16:57:55
1027
原创 拓扑排序
(DAG,Directed Acyclic Graph)的一种排序算法。在这种图中,从一个顶点出发,顺着有向边的关系,可以到达其他的顶点,但是图中不存在环,即不能回到出发点的路径。对于无向图中的边ab,存储两条有向边a->b, b->a。(1) 邻接矩阵:g[a][b] 存储边a->b。树是一种特殊的图,与图的存储方式相同。因此我们可以只考虑有向图的存储。
2024-03-23 15:34:30
409
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人