- 博客(18)
- 收藏
- 关注
原创 优雅的异或
今天在听左神的算法课的时候,有一个知识点说的是关于异或方面的,异或其实在数电里面提到过,就是相同的数异或的结果是0,不同数字异或结果为1;例如2^2 = 0,1^0 = 1,它的规则是:如果两个相应的二进制位相同,则结果为0,否则结果为1。由于0和0是相同的,所以0异或0的结果是0。
2024-03-19 19:46:10
637
1
原创 字符串之KMP算法
在上面两个字符串中,我们知道t与s进行匹配时,f与b发生冲突,说明了f之前的字符都是匹配的,但是子串到f时已经不匹配了,我们不可能让s中的字符从下表为1的地方开始,子串从头开始匹配,这样的话就浪费了太多的时间,而且大多是无效匹配的,我们希望的就是让母串不要移动,让子串来回移动,但是怎样让子串移动到合适的地方呢?这里就想到了最长公共前后缀的概念,在上面f是冲突的,但是前面是匹配的,我们就找冲突的前一个字符的前后缀长度就好了,这个长度恰好也是前缀后面的那个元素的下标,从这开始匹配,就不用在匹配之前匹配过的了;
2024-03-16 15:38:57
256
1
原创 数据结构与算法第十三天
4.2、如果当前的字符是e的话就进一步判断e后面的是数字还是+、-,如果是+、-的话。2、空字符部分后面就紧跟着+、-表示正负的字符了,如果当前的字符是+或者-,直接跳过即可。3、当前位置判断一下是点是数字还是其他的字符,这里其他字符指的是点、符号、字母,如。false,因为点后面只能够跟数字的,下面就是一直是数字了,直接循环,一直到当前的字符不为数。如果是点的出现就记录一下,说明已经有了点了,后面。回false即可,如果没出现的话,后移一个位置,继续判断一下当前位置不是数字的话,直接返回。
2023-11-04 16:11:25
90
1
原创 runtime error: reference binding to null pointer of type ‘int‘ (stl_vector.h)
今天在做力扣上螺旋矩阵这道题目的时候,我用的是vector容器把结果存储在里面,在这里简单的介绍一下vector,vector是C++标准模板库中的容器类,提供了一个动态数组的实现,可以方便我们存储和管理元素的集合,下面简要的介绍一下vector容器的特点。1、动态大小:可以根据需要动态的调整大小,无需手动的管理内存。2、连续性:vector和数组存储的元素是一样的,都是连续的,通过下标可以找到相应的元素。
2023-11-01 17:11:54
279
1
原创 详解C语言指针与数组的关系
其中p是一级指针,同理可得*(a+i) =a[ i ],不过这里的是二级指针,也就是说a[ i ]才是一级指针,下面是运行的结果:这里说明一下,在内存中地址是按十六进制排列的,0-9,A-F,逢十六。进一,由于元素是int 类型的,因此会按照0->4->8的顺序走,8+4=12,也就是对应十六进制的C。取出来,即*(a+1),这个*(a+1)代表着的是第二行首元素的地址,也就是一级指针了,就跟我i们上。特别是上式第一个,主要是取元素的地址的,在一维数组中有这样的关系,p[ i ] = *(p+i)
2023-10-09 10:21:20
2323
2
原创 数据结构与算法第十二天
倍数,因此len-next[len-1]表示的就是求解最小子串的长度,然后我们用总的长度除以最小子串的。将如果目标串的字符个数为n,必将有字符重复皮匹配了n次,n-1次,n-2,,,,3,2,1次等。子串的长度是远远小于文本串的,所以这里就引出了KMP算法,再讲KMP算法的时候,我们必须。长度了,如何寻找最小子串的长度?现超时的情况,假设文本串的长度为n,目标子串的长度为m,那此时所用的时间复杂度最坏的情。两次了,在第三次重新开始匹配的时候,这个时候文本串中第三个a已经用了三次了,后面的每个。
2023-09-10 15:05:41
86
1
原创 数据结构与算法第十一天
我们可以回想一下 ,之前做过的反转字符串,本题是在那一题的改变上进行的,注意题目规。如果不属于上面的情况,就表示字符串的长度是大于等于4*k的,就反转index到index+k-1,这个。区间的字符,刚好是这2k中的前k个字符,注意此时反转过后要进行右移,右移的步数为2*k;的位置,利用条件语句判断剩余的字符是否符合上面的两种情况,如果是将采取上面的反转措施,步的思路,这个题目分为几种情况,每种情况下面是否会有一些小的情况,小的情况是否会包含。符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。
2023-09-06 16:29:53
66
1
原创 数据结构与算法第九天
希表的形式,map里面存储了key与value,其中key代表着要存的数字,而value则是该数字的下标。我们先查一下target-num[i]是否在哈希表中出现过,如果出现过的话就代表我们遍历当前的这个数。本题的思路就是:我们先建立一个哈希表,用来存储数字各个位上的平方和,但是在存储这。个数字之前,要先判断一下,这个和是否为1,如果是1的话,直接返回true;存储了key,也就是这个元素的值,它不能存储对应元素的下标;,我们要先判断这个数字之前是否在哈希表中出现过,如果出现过的话代表着后面的一系列操作。
2023-08-15 16:19:12
66
1
原创 数据结构与算法第八天
nums2数组中的元素进行查找,看看其是否在哈希表中出现过,如果hash[t[i]]>0,说明这个数字是。码的值,关键码指的就是数组下标,假设我们查找的数字6,我们就让6作为哈希表的下标,而下标。第一次出现过的,就将其加入到结果数组中去,然后将这个数字对应的频率置为零,为啥将其对应。元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小。去,相同的数字包括重复的数字,有几个重复的就写入几个,当将其放入结果数组中去时,不需要。,请你以数组形式返回两数组的交集。
2023-08-14 20:56:35
152
原创 数据结构与算法第七天
3、利用双指针,prev与p,p用于遍历找到要删除的节点,prev用于指向要删除节点的前一。100米的地方,b在离寺庙50米的地方,b先到寺庙,这个时候a还剩50米,由于规定a与b不管哪一。等a到了寺庙之后,再让a走b最开始的那条路线,这个时候b已经走了50米,还剩50米,a还剩50米。其删除,不过那个题目的节点是从下标0开始的,本题是从下标1开始的,所以下标不同循环的条件。方到了寺庙不能停下来,要继续运动的,b先到寺庙,让b走a的路,此时还剩100米才到寺庙,链表的题目就是改变一下指向的问题,但是我。
2023-08-11 15:14:07
67
1
原创 数据结构与算法第六天(链表)
对于删除链表节点的题目,一般是先构造一个虚拟的头节点,让这个虚拟的头节点与原来的。头节点相连,因为我们不知道原来的头节点的数据是不是与要删除的数据相等,因此最好的办法就。个节点,还有当前节点的上一个节点以及当前节点,但是要注意的是要先判断当前节点是否为空节。当前节点的上一个节点,当前节点的下一个节点绝对不能为空,一旦为空了,就退出循环,具体的。然后开始遍历原链表的第一个节点,也就是虚拟节点的下一个节点,遍历的时候我们必须要知道。节点的指向,节点指来指去,我们通常采用的是先连后断的思想;
2023-08-10 14:13:44
155
1
原创 数据结构与算法第四天
1、定义两个指针,i指针表示的所在范围内的元素的左边界,j指针是负责遍历原数组,并且。首先我们要知道,篮子总共有两个,数字一样的可以装在一起,合情况的时候,这个时候尝试一下让left向右移动,以获取最大长度的可能,不过当前left指向的元。为零如果不为零,才让cnt++的,这里正好反过来了,就是将left指向的元素在哈希表中自减,自减。里要定义两个变量,i,j,j用于遍历,i表示当前窗口的左边界,j表示的是右边界;素应该在哈希表中自减,在前面的时候,我们首先对元素进行判断,在哈希表中出现的次数是不是。
2023-08-07 20:02:54
56
原创 数据结构与算法第三天
注意,在上面思路中,当n为奇数时,需要的圈数为n/2,另外矩阵的中间位置尚未填充,此。1、总共循环了几圈,这也是我们循环的条件,假设n=3,一共循环了1圈,最后还剩一个中间。总结:模拟题常见的思路就是考察对边界条件的掌控能力,如果是模拟循环的题目,先考虑。从上往下的顺序,再从右往左,最后在从下往上,注意,一圈下来,上下左右最外层已经填充完一。仔细的看清楚,这里我们要采取统一的规则,从左往右,左闭右开;都是如此的考虑,如果第一层的循环不会出错,接下来的循环都不会出错的,最后循环退出时,只。
2023-08-05 14:30:20
109
1
原创 数据结构与算法第二天
nums[i]的平方放在新数组中,并且移动i的位置,相反,如果num[j]的平方大于num[i]的平方,则将。num[j]的平方放入新的数组中去,并将j向左移一位,以此类推即可,但是要注意循环的条件是i
2023-08-02 18:32:53
49
1
原创 数据结构与算法第一天
假设数组[0,1,2,3,5],target=5,第一轮,索引mid=2,由于索引2对应的元素(2)小于5,因此按。注意,要搞清楚,slowindex位置指向的是新数组的位置,一开始都没有元素,是空的,位置,3对应的索引是3,5对应的索引是4,因此下一轮循环时,mid = (3+4)/2,下取整得mid = 3,要是有目标元素,出现的索引的位置无非就是左边界,右边界,中间的元素,这三种之一,数组的,慢指针slowindex用于指向新数组的最后一个位置,注意,指的是位置,不要与位置上的。
2023-08-01 15:34:29
53
1
原创 记录跑ylov5s中一些小细节和遇到的Bug
这个xml文件代表着一张图片的标注信息,图中画框的object指的是标注的对象,物体,下面。载对应的权重文件,权重文件是加快我们训练的速度的,在--weights这一行,default后面紧跟着的。的helmet就是他的名字,这个helmet就是目标检测的一个种类,后面的bndbox指的是预测框的坐。面修改的文件,其他的就是epochs了,epoch指的就是训练的轮数,如果用cpu训练的话,50轮花。--cfg,就是上面修改的模型的配置文件,后面改写成他的路径即可,--data就是数据文件,也是上。
2023-07-31 21:24:17
144
1
原创 解决Github访问比较慢的办法
无论是在学习中还是在以后的工作中,我们都需要通过做一些经典的项目来巩固自己的计算机基础知识,github是一个比较受欢迎的一个开源项目平台,里面包含了优秀的案例,例如服务器,深度学习等方面的项目,但是在我们访问github的时候,就会出现以下错误:github打不开,现在就这一情况作如下描述。以上就是今天要讲的内容,本文仅仅简单介绍了github访问较慢的原因,进而给出相应的解决办法,这里值得注意的是,我们不要把眼光聚集在github上,其实Gitee.com也是一个不错的代码托。
2023-07-25 10:21:00
13001
4
空空如也
yolov8改进主干网络免费
2024-01-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人