<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[everything_study的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/everything_study</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; everything_study]]></copyright><item><title><![CDATA[回溯算法的思路总结]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/152177434</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/152177434</guid><author>everything_study</author><pubDate>Sat, 27 Sep 2025 20:46:12 +0800</pubDate><description><![CDATA[你只相信 dfs 会把“以当前 path 为前缀的所有解”都找出来，只要处理好当前的选择问题，剩下的就不要考虑了。这种回溯类型的题目老是莫名其妙的可以做出来，但是不清楚具体的逻辑。，你只关心“我做了一个选择后，剩下的交给。同时最好画一下决策树，这样能够更有利于判断。写“循环 + 选择 + 递归 + 撤销”下次做回溯类型的题目可以画出这个决策树。写“终止条件” —— 什么时候停下来？一层层进去，看它怎么执行……面对回溯题，我应该如何思考。想清楚每一步要做什么选择，]]></description><category></category></item><item><title><![CDATA[leecode73 矩阵置零]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/151720001</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/151720001</guid><author>everything_study</author><pubDate>Mon, 15 Sep 2025 16:01:01 +0800</pubDate><description><![CDATA[这个题目不难，就是一句话，遍历这个矩阵的时候，当遇到0的时候就把该行该列改为0，同时为了不影响后续的遍历，我们可以将这个遍历和修改分为两个数组。使用mn的辅助空间
如果使用m+n的辅助空间，我们可以使用set来使用，set可以去重
其它思路
没有找到灵神的题解，可能灵神觉得这个题目不值得研究吧。不过找到了一个只用了O(1)复杂度的大佬，看一下他的解法他的做法主要分为三步，利用第一行和第一列进行标记
生成一个适合你的列表

项目

项目

项目






项目1
项目2
项目3


 计划任务
 完成任务
]]></description><category></category></item><item><title><![CDATA[238 除自身以外数组的的乘积]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/151653741</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/151653741</guid><author>everything_study</author><pubDate>Sat, 13 Sep 2025 16:30:20 +0800</pubDate><description><![CDATA[问了下AI，这种题目我可以从什么方向入手，他提示我可以使用前缀积和后缀积的方法来做这道题。那么其前缀积是1，1，2，6，这个是第一轮中每个元素不包含自己左边所有元素的乘积。区别在于他使用了两个数组来分别存放前缀积和后缀积，我是直接一个数组就结束了。题目的主要难点是，如何通过这个线性运算得出所有的乘积和，同时不适用除法。灵神的思路和AI提示的思路是一样的，都是利用前缀积和后缀积进行计算的。之后我们在进行后缀积遍历24，12，8，6。好奇怪啊，这个题目，没什么思路。就比如说1，2，3，4。]]></description><category></category></item><item><title><![CDATA[leecode189 轮转数组]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/151652772</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/151652772</guid><author>everything_study</author><pubDate>Sat, 13 Sep 2025 15:59:01 +0800</pubDate><description><![CDATA[利用辅助数组存放两段区间，唯一需要注意的是这个k有可能会出现大于len的情况，此时我们需要对这个k进行取余。对于要求1，除了使用额外空间，我们还可以使用暴力解法，直接一个一个的进行移动即可。灵神的思路就很强，他并没有引入额外空间，并且时间复杂度还很低，他是利用了三次颠倒。这个题目本质上是移动数组，这种题目不难，本质上就是移动数组而已。2.在对前面的2个进行颠倒(5,6,4,3,2,1)。3.对剩下的进行颠倒(5,6,1,2,3,4)。]]></description><category></category></item><item><title><![CDATA[神经网络介绍]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/151647355</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/151647355</guid><author>everything_study</author><pubDate>Sat, 13 Sep 2025 10:58:33 +0800</pubDate><description><![CDATA[对于一个30 * 30的图像，输入给神经网络的有900个神经元，加入下一层有1000个神经元构成全连接层，那么就会有900000个参数，太大了，并且当图片产生了移动，变暗，这些参数又会全部变化，没有局部性，因此诞生了卷积。然后得到这个系数之后让其与v系数相乘，在相加得到A1矩阵看，这样A1中就包含，第一个词视角下 ，按照和它相似度大小（a1i），按权重（v矩阵）把每个词的词向量加到了一块，这就把全部上下文的信息都包含在第一个词当中了。有的时候只计算一次，灵活性太低，所以我们可以通过计算得到多组q，k，v。]]></description><category></category></item><item><title><![CDATA[Mamba模型介绍]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/151647263</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/151647263</guid><author>everything_study</author><pubDate>Sat, 13 Sep 2025 10:56:35 +0800</pubDate><description><![CDATA[我们通过Transformer模型的学习可以知道，在最开始处理这个序列数据的时候是通过RNN和CNN来进行处理的，但是RNN由于自己不能够进行并行计算，同时会产生遗忘，所以引入了注意力机制，Transformer的创新就是引入了多头自注意力机制。而本文所要研究的Mamba模型和Transformer模型一样同样是处理序列数据的。可以利用这个模型处理一串有顺序信息的数据Mamba基于SSM或S4发展为S6这些概念不需要知道特别清楚，只需要知道。]]></description><category></category></item><item><title><![CDATA[leecode56 合并区间]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/151647204</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/151647204</guid><author>everything_study</author><pubDate>Sat, 13 Sep 2025 10:55:11 +0800</pubDate><description><![CDATA[最开始的时候，我是利用这个List获取新的数组，最后将这个list转化为二维数组，但是这种方法涉及到多次的装箱和拆箱工作，且占用额外的空间。他利用的是ans.get(m-1)[1]来获取的这个上一个区间的右端点，我是直接遍历的。后续我发现可以不用新建集合，直接在原有数组上进行操作即可。灵神的思路和我大体一致，有几点不同。]]></description><category></category></item><item><title><![CDATA[深度学习入门，基于python的理论与实现]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/151017625</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/151017625</guid><author>everything_study</author><pubDate>Sat, 30 Aug 2025 13:41:25 +0800</pubDate><description><![CDATA[感知机接收多个输入信号，输出一个信号。每个输入信号都有要给权重，权重越大，信号的重要性就越高具体的实例可以参考这个与非门输入0，0输出0，输入0，1输出0，输入1，0输出0，输入1，1输出1这个感知机就实现了类似于与非门的功能，将多个信号联系上权重，进行输出具体公式如下：利用Numpy来实现感知机b = -0.7if tmp>0:return 1else:return 0AND(1,1),AND(0,1),AND(1,0))]]></description><category></category></item><item><title><![CDATA[leecode153 寻找排序元素中的最小值]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/150608201</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/150608201</guid><author>everything_study</author><pubDate>Fri, 22 Aug 2025 12:57:36 +0800</pubDate><description><![CDATA[如果遍历循环还是没找到，说明这个数组是一个有序数组，并没有移动，或者移动之后又恢复了原样，我们直接返回nums[0]即可。利用上述性质我们将其与第一开始的元素进行比较，判断当前nums[middle]元素进行比较。我们注意到这个数组是两个有序的数组的拼接，所以我们要将这个窗口往拼接的位置上进行去靠进。我们还可以注意到，这个数组中的两个有序数组，有一个数组的最小值大于另一个数组的最大值。如果这个数即不大于右边的，又不小于左边的，说明我们需要改变窗口的位置。如果这个数大于它右边的数，那么这个右边的数是结果。]]></description><category></category></item><item><title><![CDATA[leecode162 寻找峰值]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/150607872</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/150607872</guid><author>everything_study</author><pubDate>Fri, 22 Aug 2025 12:25:34 +0800</pubDate><description><![CDATA[那么nums[middle+1]就不是峰值了，则这个nums[middle+2]肯定要大于nums[middle+1]，不然的话这个nums[middle+1]就是峰值了，因为nums[middle]<nums[middle+1]>nums[middle+2]将middle处的元素与middle+1的位置元素进行相比，如果nums[middle]<nums[middle+1]，那么肯定在下标 [middle+1,n−1] 中一定存在峰值。假设下标 [middle+1,n−1] 中没有峰值。]]></description><category></category></item><item><title><![CDATA[Transformer模型实战篇]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/150588634</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/150588634</guid><author>everything_study</author><pubDate>Thu, 21 Aug 2025 18:03:56 +0800</pubDate><description><![CDATA[命名实体识别（Named Entity Recognition，简称NER）是指识别文本中具有特定意义的实体，主要包括人名、地名、机构名、专有名词等。通常包括两部分：（1）实体边界识别（从哪里到哪里是一个实体）；（2）确定实体类别（人名、地名、机构名或其他）eg 小明在北京上班实体类别实体地点北京人物小明。]]></description><category></category></item><item><title><![CDATA[leecode445 两数相加II]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/150551012</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/150551012</guid><author>everything_study</author><pubDate>Wed, 20 Aug 2025 12:09:19 +0800</pubDate><description><![CDATA[这个题目感觉非常不优雅，代码写的太多了，不过题目难度倒是不难，本质上就是先将两个链表翻转，然后逐个进行相加运算即可，重点在于需要定义一个尾指针，方便一个讲长的那个拼接到短的上。灵神是用递归来做的，不断调用这个addTwo方法。感觉 没有我的好明白。不过灵神的代码写的真优雅啊，我的代码就是一坨了，丑陋不堪。同时还需要注意如果两个链表等长，但是有进位，需要用尾指针进行新建节点，而不能用遍历的时候节点。]]></description><category></category></item><item><title><![CDATA[leecode25 K个一组翻转链表]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/150548897</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/150548897</guid><author>everything_study</author><pubDate>Wed, 20 Aug 2025 10:59:58 +0800</pubDate><description><![CDATA[这里相比92题也做了一部分的修改，我多加入了一个变量，用于记录这k个元素的最开始的元素，当翻转结束之后，这个元素成为这k个元素的最后一个元素，同时也是下一组的前一个pre元素。灵神的话，首先统计了这个节点的个数，然后利用这个节点的个数进行遍历循环。和我的主要区别在于，他并没有找这个last节点。本质上我和灵神的思路差不多，毕竟就是跟着他学的。这个题目是((20250817112352-w8vn3te ‘0092 反转链表II’)) 的延申题目，虽然难度上是困难，但实际上并不是很难。我的思路主要分为三步。]]></description><category></category></item><item><title><![CDATA[Transformer模型实战基础入门]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/150468144</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/150468144</guid><author>everything_study</author><pubDate>Sun, 17 Aug 2025 15:39:06 +0800</pubDate><description><![CDATA[将数据预处理，模型调用，结果后处理三部分组装成的流水线是我们能够直接输入文本便获得最终答案预处理就是将文本转化为ID，模型调用就是获取评分，结果后处理，就是得出结果主要工作就是数据预处理Step1分词：使用分词器对文本数据进行分词(字、字词)；Step2构建词典：根据数据集分词的结果，构建词典映射（xx对应xx）（这一步并不绝对，如果采用预训练词向量（已经有人做好了词向量了），词典映射要根据词向量文件进行处理）；]]></description><category></category></item><item><title><![CDATA[leecode92 反转链表II]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/150465296</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/150465296</guid><author>everything_study</author><pubDate>Sun, 17 Aug 2025 12:07:37 +0800</pubDate><description><![CDATA[需要注意的是这个ans不能够一开始指向pre.next，最后返回ans，只能够一开始指向pre，最后返回ans.next，因为如果一开始指向这个pre.next的话，那么这个ans和head指向的对象是一个。当后续对head进行修改的时候，这个ans也会发生变化。灵神思路和我的类似，区别在于灵神并没有找这个last节点，而是发现遍历之后temp指向的就是last节点的位置。这个比较简单，我们先找到这个需要反转的位置的前一个，以及找到反转位置的后一个。把这两个中间的进行反转。]]></description><category></category></item><item><title><![CDATA[leecode239 滑动窗口的最大值]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/150443974</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/150443974</guid><author>everything_study</author><pubDate>Sat, 16 Aug 2025 11:52:07 +0800</pubDate><description><![CDATA[灵神利用了滑动窗口和双端队列，利用双端队列记录本轮中最大值的位置，但是他不仅仅记录了这个最大值的位置，还记录了可能作为下一轮窗口最大值的位置（只要这个元素大于左边的元素，就有可能作为后续的最大值，如果这个元素小于左边的元素，那么就不会作为后续的最大值）先判断窗口中是否为空的，如果不为空，判断这个元素与队列中的最近添加的元素的大小关系，如果这个元素比较大 ，那么说明，它可能是后续窗口的最大值，队列中的最后一个元素就不可能是最大值了。更新答案，以数组为：4，1，6，7，4。滑动窗口三步走，进，出，记录答案。]]></description><category></category></item><item><title><![CDATA[leecode560 和为K的子数组]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/150421445</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/150421445</guid><author>everything_study</author><pubDate>Fri, 15 Aug 2025 14:00:36 +0800</pubDate><description><![CDATA[这个题我觉得难度挺高的，我刚开始以为这个题目时简单的滑动窗口的题型，想着用滑动窗口的思路去做这个题目，但是我做不出来，因为我不清楚这个滑动窗口窗口的移动条件是什么，原因如下正是上面的几个原因导致这个滑动窗口法无法解决问题，大概只能够解决34/93个案例。]]></description><category></category></item><item><title><![CDATA[leecode303 区域和检索 - 数组不可变]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/150419297</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/150419297</guid><author>everything_study</author><pubDate>Fri, 15 Aug 2025 11:45:18 +0800</pubDate><description><![CDATA[总结这个题目有点懵逼，第一次见这种题目这种题目的意思就是，我们通过这个函数名来调用函数，调用NumArrray就创建对象，调用sumRange就是返回这个区域的检索和。相比于自己调用函数，leecode的这个调用函数是传递函数名，和这个参数值来调用的，利用了Java的反射。先获取函数对象，然后传递参数调用。]]></description><category></category></item><item><title><![CDATA[leecode2439 最小化数组中的最大值]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/150276469</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/150276469</guid><author>everything_study</author><pubDate>Tue, 12 Aug 2025 17:04:08 +0800</pubDate><description><![CDATA[这个题没有做出来，我太菜了。我找不到这个查找的终止条件，即对这个数组进行操作，达到什么程度不能够获得比某个数更小的值了。]]></description><category></category></item><item><title><![CDATA[leecode875 爱吃香蕉的珂珂]]></title><link>https://blog.youkuaiyun.com/everything_study/article/details/150220490</link><guid>https://blog.youkuaiyun.com/everything_study/article/details/150220490</guid><author>everything_study</author><pubDate>Mon, 11 Aug 2025 17:16:05 +0800</pubDate><description><![CDATA[题目的类型就是查找一个最小速度，即找出来一个速度k，使得当速度>=k的时候，这个珂珂就能够顺利吃掉所有的香蕉，而我们知道二分查找算法可以找到满足条件最小一个数，即>=k。确定这个二分查找算法的边界（使用左开右开，这样方便，不用对这个right和left的最后结果做判断了）此时我们需要遍历这个堆，然后计算此时的次数，这个地方涉及了一个整数向上取整。这个条件就是当我们使用这个k速度吃香蕉的时候，能否吃完。在二分查找的时候我们要判断当前的数是否满足条件。这个条件就是当速度为k的时候可以吃完这些香蕉。]]></description><category></category></item></channel></rss>