- 博客(424)
- 收藏
- 关注
原创 Day136 | 灵神 | 回溯算法 | 子集型 串联字符串的最大长度
用选或不选这个思路,会让思路变得非常简单。具体来说就是看选不选当前的字符串,选的话长度加上当前字符串,不选的话就递归下一个字符串选或不选。在于 我们决定要选当前字符串的情况下,我们能不能选当前字符串,即看这个字符串和已经选了的有没有重复,除此之外还要看组内有没有重复的。遍历字符串,如果在之前选的里面没出现过,对应字符++,如果有字符出现过,那代表我们都将不能选这个字符串,所以直接break。下面就是字符串不能选的情况,因为hash数组是全局变量,所以还得给它加了的给减回去,所以才有下面的for循环。
2025-06-30 12:04:20
316
原创 Day135 | 灵神 | 回溯算法 | 子集型 烹饪料理
笔者用的是选或不选的思路,即看第 i种选或不选,如果食材足够就选(choicei进行判断),如果食材不足就不选,直接去看i+1选或不选。选的话就把食材饱腹感美味度给修改了,不选的话就直接递归就行。
2025-06-27 11:08:22
120
原创 Day134 | 灵神 | 回溯算法 | 子集型 字母大小写全排列
这道题用选或不选的思路来解答。选或不选说的不是选或不选s字符串中的某个字符,而是选或不选改变s字符串中字符的大小写如果是数字的话就不用说了,我们直接输入到path就行如果是字母的话,那就有两种情况1.选择不改变其大小写直接输入到path,这种就是原来什么样子现在还什么样2.选择改变其大小写直接输入到path,这种就是改变了大小写以后放进去的需要注意的点:对于同一个结点有多个状态,比如这道题,在选择字母a之后,字母a还有两个状态一个改变大小写一个不改变。
2025-06-26 09:38:37
417
原创 深度学习与神经网络 | 邱锡鹏 | 第七章学习笔记 网络优化与正则化
问题就是会对参数初始化产生一定的影响,也会对优化产生一定的影响。总体趋势还是减少的。时不时变大是为了找到更好的局部最优。所以找个平坦最小值就好了,不一定需要全局最小值。标准差为0的数据没啥意义,直接就扔了。上图通常用在循环网络中。可以提高网络的泛化能力。可以增强模型泛化能力。
2025-06-23 08:59:10
271
原创 深度学习与神经网络 | 邱锡鹏 | 第六章学习笔记 循环神经网络
会让第t个时刻的时候收不到关于第k个时刻的损失对地t个时刻的影响 原因就是梯度爆炸或者梯度消失。没有结果产生的部分就是编码部分,有结果产生的部分就是解码部分。s是单个词的意思,b是一个词的开始,e是一个词的结束。让上图的伽马=1即可,但是这个条件很强,很难达到。ft是遗忘门,说的是我们这次应该忘记多少信息。这是之前说的自回归模型。
2025-06-23 08:57:52
322
原创 26考研 | 王道 | 计算机组成原理 | 七、输入输出系统
在配有通道的计算机系统中,用户需要输入输出时,引起的中断是 访管中断 (因为这时调用的是系统提供的接口,要去请求操作系统服务,此时会使得访管中断)
2025-06-13 22:45:01
902
原创 26考研 | 王道 | 计算机组成原理 | 六、总线
计算机使用总线结构便于增减外设,同时减少信息传输线的条数总线简图总线的物理实现同一时刻只能有一个部件发送信息,但是各个部件可以同时从总线接收数据在总线上,同一时刻只能有一个主设备控制总线传输操作总线的特性1.机械特性:尺寸、形状、管脚数、排列顺序2.电气特性:传输方向和有效的电平范围3.功能特性:每根传输线的功能(地址、数据、控制)4.时间特性:信号的时序关系串行总线抗干扰能力比较强。并行总线与串行总线并不一定谁就比谁快,并行总线工作频率高的时候会有严重干扰,所以频率不能太高。
2025-06-13 22:44:10
572
原创 26考研 | 王道 | 计算机组成原理 | 五、中央处理器
在ALU的输出端加一个暂存寄存器,等R0送到总线上的信号稳定之后,ALU把运算的结果放到暂存寄存器中,在ALU的输出稳定之后,让三态门导通,把运算结果送到内部总线上,给R0的输入端加上有效的电信号,就会把运算的结果输入到R0寄存器中。ALU,通用寄存器,状态寄存器,Cache,MMU,浮点运算逻辑,异常和中断处理逻辑等都是指令执行过程中数据流经的部件,都属于数据通路的一部分。4.外中断:和你自己没关系,旁边来了个妹妹,打断了你的学习,你看了十分钟又灰溜溜的做题,这就是外中断,和你自己(CPU)没关系。
2025-06-13 22:42:45
882
原创 单周期cpu和多周期cpu、单周期数据通路和多周期数据通路与总线结构数据通路和专用数据通路的关系
单周期CPU:控制信号静态、部件一次性使用 →简单但低效。多周期CPU:控制信号动态、部件可复用 → 复杂但高效。这种差异正是多周期CPU能突破单周期性能瓶颈的关键。
2025-06-06 16:14:36
854
原创 26考研 | 王道 | 计算机组成原理 | 四、指令系统
接下来四句指令都是给下层函数add传递参数,需要倒腾一遍,先把temp1放到寄存器,再从寄存器放回主存的对应地址(不从主存直接写到主存是因为汇编的源操作数和目的操作数不可以同时是主存)等到取指令取完第M+3条指令之后,PC值就会变为M+4,而不是M+3,所以相对寻址(跳转指令)就得按照PC=M+4来算,也就是补码表示的-4。有的复杂指令用硬件实现困难,那就把组成复杂指令的一些简单的指令存储起来(微程序),完成这个复杂指令。图中的指令字长是变化的,不是右边的16bit,所以才会每次读入一个字。
2025-06-05 22:50:15
1214
原创 Day130 | 灵神 | 回溯算法 | 子集型 电话号码的字母组合
灵神没有"恢复现场"这一步,是因为灵神把path初始化为全0的字符串,并且在递归中直接覆盖了对应的值,而恰巧字符串返回时的长度全都是digits数组的长度,所以把path放入结果集的时候肯定path数组都会被覆盖一遍。3.下一个子问题:构造字符串>=index+1的部分,就是说明我们下一层的递归参数是index+1,因为我们已经在本层的字母中选择了一个,所以要继续往下走了,表现在数组上就是继续往下遍历digits。映射的建立,下标要对上数字,也就是让映射的数组从下标2开始而不是0,这样会方便很多。
2025-06-05 20:50:13
404
原创 26考研 | 王道 | 计算机组成原理 | 三、存储系统
相同容量:在两者容量相同的地方,还是双通道,但是在低容量没有了的地方,而高容量内存条还有内存的地方,那其实就相当于单通道了。用游戏来说的话,如果正好放在了低地址的地方,即双通道的地方,那运行速度就快,但是如果不巧被放到了高地址的地方,那就还是单通道,性能会很不稳定。就是RAID0是一个逻辑盘,是通过磁盘1和磁盘2映射而来,比如RAID0的第一个存储单元的数据存放在磁盘1的第一个单元和磁盘2第一个单元,那我们读取逻辑盘的时候就相当于有两个磁盘同时为我们工作,可以实现并行访问,提高速度。
2025-06-05 20:17:02
1006
原创 Day129 | 灵神 | 二叉树 | 二叉树的堂兄弟节点II
而我们把所有结点的和加起来以后,再减去 4的左右孩子的值,那剩下的不就是9的左右孩子的值吗。为什么要算和是多少呢?因为我们要知道4的左右孩子的值是多少就必须知道9的左右孩子的和。算一下就是 10+1+7=18,这是第三层节点的和 4的左右孩子和是11,9的是7。那么4的左右孩子的值就是 18-1-10=7,而9的左右孩子就是18-7=11了。要算第三层,就要考虑第二层,当我们还在遍历第二层的时候,就把第二层的节点存起来。然后遍历一次第二层节点得到 第三层节点的和 10+1+7=18。
2025-05-29 20:22:56
279
原创 26考研 | 王道 | 第六章 应用层
由于SMTP只能传送一定长度的ASCII码,许多其他非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)就无法传送,且无法传送可执行文件及其他二进制对象,因此提出了多用途网络邮件扩充(Multipurpose Internet MailExtensions,MIME)。客户端连接服务器21端口,登陆成功后要读取数据时,客户端要读取数据,然后发送PASV命令告知服务器,服务器收到后开放一个随机端口,告知客户端,客户端来进行连接,连接好以后进行传输。③启动从属进程来处理客户进程发来的请求。
2025-05-29 16:13:48
994
原创 Day128 | 灵神 | 二叉树 | 反转二叉树的奇数层
层序遍历的话就交换对应节点的值吧,就如果是奇数层的话,就把节点都弄到vector里面,然后反转节点的值。
2025-05-27 23:23:24
300
原创 26考研 | 王道 | 第五章 传输层
比如下图中,乱序到达了20,21,22,这时候不可以把这个数据交付给应用程序,因为18和19还没到,不可以称之为有序。
2025-05-27 11:27:59
1872
原创 Day127 | 灵神 | 二叉树 | 奇偶树
但是很显然这个是有问题的,因为我这里是用当前结点和队头元素进行比较,那我当前这一层的节点就有可能和下一层的节点进行比较,这是明显的错误,因为下一层的奇数或者偶数和本层的奇数或者偶数没有关系,所以导致了错误。这道题用层序遍历的思路比较好想,就是往for循环里面加一个if,如果是奇数层就判断是不是偶数并且递减,如果是偶数层就判断是不是奇数并且递增,会很直接的写下如下所示的代码。
2025-05-26 15:17:24
255
原创 Day126 | 灵神 | 二叉树 | 层数最深的叶子结点的和
用深度优先也可以,传一个参数是深度,当深度最大的时候才会把当前结点的值加入到res中。这道题用层序遍历的思路比较好想,就把每层的都算一下,然后返回最后一层的和就是了。
2025-05-24 23:56:20
532
原创 Day125 | 灵神 | 二叉树 | 二叉树中的第K大层和
把每层的结果都放到一个vector数组里面,然后排序这个vector数组,返回第K大的元素即可。
2025-05-23 18:01:45
346
原创 Day124 | 灵神 | 二叉树 | 二叉树最小深度
就是我们找到的第一个叶子节点,它的深度就是树的最小的深度。之前都是递归写法,这次写层序遍历。
2025-05-22 23:38:33
254
原创 Day123 | 灵神 | 二叉树 | 找树左下角的值
我的思路就是在每层的循环前加个判断,把res更新队头元素,队头肯定是最左边的。灵神思路是先入队右孩子再入队左孩子,这样最后一个出队的肯定是最左边的。初学者可以看灵神视频。
2025-05-21 23:08:25
226
原创 Day121 | 灵神 | 二叉树 | 二叉搜索树的最近共公共祖先
笔者第一次做不会做,下面是灵神的思路。注意使用的是后序遍历,因为我们需要叶子结点给上层结点反馈信息一个重要的思想是把叶子节点所连接的两个空节点看做是叶子结点推荐先把做了,对理解本题做法有帮助本题最深的叶子可能只有一个,此时这个叶子就是答案。如果最深的叶子不止一个,那么答案为最深叶子的最近公共祖先。
2025-05-19 19:29:33
396
原创 Day120 | 灵神 | 二叉树 | 二叉搜索树的最近共公共祖先
3.如果不是以上两种情况,那只能是q和p分别在左右子树中,那么当前结点肯定是最近公共祖先了,就返回当前结点就行。1.如果q和p的值都是小于当前结点值的,那说明q和p肯定都在左子树,那他们的最近公共祖先肯定在左子树中。2.如果q和p的值都是大于当前结点值的,那说明q和p肯定都在右子树,那他们的最近公共祖先肯定在右子树中。我们可以利用搜索树性质来查找q和p的最近公共祖先。这道题是236的一种特殊情况。
2025-05-17 21:25:19
290
原创 Day119 | 灵神 | 二叉树 | 二叉树的最近共公共祖先
但是,在递归过程中,返回值可能是最近公共祖先,也可能是空节点(表示子树内没找到任何有用信息)、节点 p 或者节点 q(可能成为最近公共祖先,或者用来辅助判断上面的某个节点是否为最近公共祖先)。3.如果左右子树都有的话,也就是pq分别在这当前结点的左右子树,那么最近公共祖先就是当前结点。4.如果只在左子树中找到了q或者p,那说明最近公共祖先肯定在左子树,返回遍历左子树的结果就行。比如5是p,4是q,那么我们遍历到5就直接返回5就行,因为5是5和4的最近公共祖先。2.当前结点是p或者q,直接返回当前结点就行。
2025-05-17 21:24:38
464
原创 Day118 | 灵神 | 二叉树 | 删点成林
很可惜这样是错的,因为这样做只是删除了当前结点,没有改变当前结点父节点的指针,导致父节点的里面还放着我们已经delete以后的地址空间,这样做漏洞很大。最直接的思路就是看当前结点的值是不是在要删除的列表中,在的话删除当前结点并把左右孩子加入res中。如果当前结点该删除,那就给上层节点返回nullptr,告知父节点该节点被删了。如果当前结点没有被删除,那就给上层结点返回当前结点,表示当前结点没有被删除。正确的做法是后序遍历,返回值是当前结点删了没删。 同时还要把不为空的左右孩子加入到森林中。
2025-05-15 23:22:15
231
原创 26考研 | 王道 | 计算机组成原理 | 一、计算机系统概述
计算机组成原理中的“存储程序”工作方式是由冯·诺依曼于1945年提出的核心设计思想,其核心是将程序和数据以二进制形式预先存储到计算机内存中,由控制器自动按顺序执行指令,实现自动化运算。往主存中写就是在MAR写地址,MDR写数据,表明CPU想把MDR的数据存在哪里,然后存储器根据MAR地址把MDR存在相应的位置。以存储器为中心,输入的数据直接交给存储器,输出的时候也由存储器直接给输出设备,更多的解放运算器的运算时间。:注意与存储器的容量或者文件的大小中的K、M、G、T的区别。
2025-05-15 15:52:20
1576
原创 Day117 | 灵神 | 二叉树 | 二叉搜索树的最大键值和
笔者第一次写是用bool返回子树是否是二叉搜索树,只要左右子树是,那就把本节点的值给加上了,所以出错了,因为左右子树都是二叉搜索树不能说算上当前结点也是二叉搜索树。只要不是二叉搜索树,那和就是0,只要是那就是左右子树之和再加本节点的值,再和当前的最大值取一个最大值,就是结果,然后继续向上返回。hard题,思路倒也简单,就是后序遍历,判断这棵树是不是二叉树并且自底向上计算这棵子树的和,然后更新最大值。所以递归函数意义就是向上返回左右边界的当前子树的和,左右边界用来判断是否二叉搜索树,和用来找最大值。
2025-05-14 10:35:07
369
原创 网页禁止粘贴的解决方法(以学习通网页为例)
注:如果有最少字数限制而你修改后字数限制还在的话,你就在输入几个a然后再删了就行。学数据挖掘,学习通过作业的简答题要英文做答还竟然不能复制粘贴,受不了了。2.于是在输入框先随便输入一些文字,方便直接右键选择检查,查看源码。1.想着是网页JS的问题,既然不能直接粘贴,那就在源码里面修改。3.双击,把内容换成自己想要的就行。
2025-05-12 22:14:39
736
原创 Day115 | 灵神 | 二叉树 | 二叉搜索树中的众数
用MaxCnt记录最大值,用Cnt表示当前结点值的频率,用pre记录前一个节点。二叉搜索树中序遍历是有序的,收入到一个vector中对这个升序数组进行处理。遍历一遍,然后用map统计频率,最后对value排序,选出最大的。如果Cnt大于MaxCnt的话就把MaxCnt更新为Cnt。如果不相等那么Cnt重新置为1,表示当前结点t是一个新值。如果当前结点和前一个结点的值相等,那就Cnt++如果二者相等的话就把当前结点的值放入结果集中。,那就是中序遍历过程中动态统计频率。
2025-05-10 08:59:24
527
原创 移动IP与手机移动数据流量的概念、原理、区别与联系
移动IP是网络层技术,解决设备跨网络移动时的连接连续性问题,核心在于代理转发与IP地址固定化。手机移动数据流量是应用层统计指标,反映用户通过移动网络传输的数据量,直接影响资费与网络资源分配。两者关联:移动IP的实现依赖流量传输,而流量管理技术(如网络分流)可优化移动IP的效率和成本。未来随着5G与全IP网络的发展,两者将更深层次融合,推动无缝通信与智能化流量管理。
2025-05-09 13:17:36
1067
原创 端到端与点到点数据传输的概念、区别与联系及协议示例
端到端(End-to-End)数据传输定义:端到端通信是传输层的概念,指数据从发送端(如应用程序)到接收端的完整传输过程,无需关注中间节点的具体路径特点:建立逻辑链路(如TCP连接),确保数据可靠、有序地到达目标应用进程点到点(Point-to-Point)数据传输定义:点到点通信是数据链路层或网络层的概念,指数据在相邻节点之间逐跳传输(如路由器之间或设备与交换机之间)特点:仅关注直接相连的两个节点间的传输,不保证端到端的可靠性端到端与点到点的核心差异在于传输范围和协议层次。
2025-05-09 13:16:55
554
原创 Day114 | 灵神 | 二叉树 | 二叉搜索树的最小绝对差
这道题目拿到手就觉得在树中递归查找太费劲了,还是转化为有序数组在数组中使用二分比较方便。2.二分查找queries[i]即可找到最大最小值。1.中序遍历root得到有序数组arr。
2025-05-09 13:15:59
231
原创 C++ 中 lower_bound 与 upper_bound 函数详解
关键区别检查元素是否存在结合 的返回值与目标值比较:统计元素出现次数使用 计算区间跨度:自定义排序规则支持传入比较函数,处理复杂数据结构或非默认排序:插入元素保持有序性在有序容器中插入新元素时,确定插入位置四、注意事项与常见误区必须保证序列有序迭代器越界检查自定义比较函数的一致性等价元素的处理差异若需获取所有等价元素的范围,建议使用equal_range(返回lower_bound和upper_bound的 pair 结果)六、总结 和 是处理有序序列的核
2025-05-09 13:15:04
1850
原创 Day112 | 灵神 | 二叉树 | 二叉搜索树的范围和
1.当前结点值大于high的值说明右子树的所有值在范围外,只搜索左子树。2.当前结点值小于low的值说明左子树的所有值在范围外,只搜索右子树。最直接的思路当然是直接前序遍历一遍,碰到在一个区间的就加到和里面。加上二叉搜索树的性质就是用后序遍历来写,递归函数返回值就。3.在范围内那么左右子树都得继续搜索,返回三者的和。
2025-05-07 10:31:49
153
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人