数据结构与算法
文章平均质量分 71
abc115211
这个作者很懒,什么都没留下…
展开
-
数据结构与算法第十三天
4.2、如果当前的字符是e的话就进一步判断e后面的是数字还是+、-,如果是+、-的话。2、空字符部分后面就紧跟着+、-表示正负的字符了,如果当前的字符是+或者-,直接跳过即可。3、当前位置判断一下是点是数字还是其他的字符,这里其他字符指的是点、符号、字母,如。false,因为点后面只能够跟数字的,下面就是一直是数字了,直接循环,一直到当前的字符不为数。如果是点的出现就记录一下,说明已经有了点了,后面。回false即可,如果没出现的话,后移一个位置,继续判断一下当前位置不是数字的话,直接返回。原创 2023-11-04 16:11:25 · 101 阅读 · 1 评论 -
数据结构与算法第十二天
倍数,因此len-next[len-1]表示的就是求解最小子串的长度,然后我们用总的长度除以最小子串的。将如果目标串的字符个数为n,必将有字符重复皮匹配了n次,n-1次,n-2,,,,3,2,1次等。子串的长度是远远小于文本串的,所以这里就引出了KMP算法,再讲KMP算法的时候,我们必须。长度了,如何寻找最小子串的长度?现超时的情况,假设文本串的长度为n,目标子串的长度为m,那此时所用的时间复杂度最坏的情。两次了,在第三次重新开始匹配的时候,这个时候文本串中第三个a已经用了三次了,后面的每个。原创 2023-09-10 15:05:41 · 98 阅读 · 1 评论 -
数据结构与算法第九天
希表的形式,map里面存储了key与value,其中key代表着要存的数字,而value则是该数字的下标。我们先查一下target-num[i]是否在哈希表中出现过,如果出现过的话就代表我们遍历当前的这个数。本题的思路就是:我们先建立一个哈希表,用来存储数字各个位上的平方和,但是在存储这。个数字之前,要先判断一下,这个和是否为1,如果是1的话,直接返回true;存储了key,也就是这个元素的值,它不能存储对应元素的下标;,我们要先判断这个数字之前是否在哈希表中出现过,如果出现过的话代表着后面的一系列操作。原创 2023-08-15 16:19:12 · 78 阅读 · 1 评论 -
数据结构与算法第八天
nums2数组中的元素进行查找,看看其是否在哈希表中出现过,如果hash[t[i]]>0,说明这个数字是。码的值,关键码指的就是数组下标,假设我们查找的数字6,我们就让6作为哈希表的下标,而下标。第一次出现过的,就将其加入到结果数组中去,然后将这个数字对应的频率置为零,为啥将其对应。元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小。去,相同的数字包括重复的数字,有几个重复的就写入几个,当将其放入结果数组中去时,不需要。,请你以数组形式返回两数组的交集。原创 2023-08-14 20:56:35 · 198 阅读 · 0 评论 -
数据结构与算法第七天
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 · 79 阅读 · 1 评论 -
数据结构与算法第六天(链表)
对于删除链表节点的题目,一般是先构造一个虚拟的头节点,让这个虚拟的头节点与原来的。头节点相连,因为我们不知道原来的头节点的数据是不是与要删除的数据相等,因此最好的办法就。个节点,还有当前节点的上一个节点以及当前节点,但是要注意的是要先判断当前节点是否为空节。当前节点的上一个节点,当前节点的下一个节点绝对不能为空,一旦为空了,就退出循环,具体的。然后开始遍历原链表的第一个节点,也就是虚拟节点的下一个节点,遍历的时候我们必须要知道。节点的指向,节点指来指去,我们通常采用的是先连后断的思想;原创 2023-08-10 14:13:44 · 198 阅读 · 1 评论 -
数据结构与算法第五天(数组总结)
经过了前几天对数组的学习,通常数组不会单独的拿出来考察我们,他会与某些数据结构或。原创 2023-08-09 11:43:31 · 187 阅读 · 1 评论 -
数据结构与算法第四天
1、定义两个指针,i指针表示的所在范围内的元素的左边界,j指针是负责遍历原数组,并且。首先我们要知道,篮子总共有两个,数字一样的可以装在一起,合情况的时候,这个时候尝试一下让left向右移动,以获取最大长度的可能,不过当前left指向的元。为零如果不为零,才让cnt++的,这里正好反过来了,就是将left指向的元素在哈希表中自减,自减。里要定义两个变量,i,j,j用于遍历,i表示当前窗口的左边界,j表示的是右边界;素应该在哈希表中自减,在前面的时候,我们首先对元素进行判断,在哈希表中出现的次数是不是。原创 2023-08-07 20:02:54 · 73 阅读 · 0 评论 -
数据结构与算法第三天
注意,在上面思路中,当n为奇数时,需要的圈数为n/2,另外矩阵的中间位置尚未填充,此。1、总共循环了几圈,这也是我们循环的条件,假设n=3,一共循环了1圈,最后还剩一个中间。总结:模拟题常见的思路就是考察对边界条件的掌控能力,如果是模拟循环的题目,先考虑。从上往下的顺序,再从右往左,最后在从下往上,注意,一圈下来,上下左右最外层已经填充完一。仔细的看清楚,这里我们要采取统一的规则,从左往右,左闭右开;都是如此的考虑,如果第一层的循环不会出错,接下来的循环都不会出错的,最后循环退出时,只。原创 2023-08-05 14:30:20 · 124 阅读 · 1 评论 -
数据结构与算法第二天
nums[i]的平方放在新数组中,并且移动i的位置,相反,如果num[j]的平方大于num[i]的平方,则将。num[j]的平方放入新的数组中去,并将j向左移一位,以此类推即可,但是要注意循环的条件是i原创 2023-08-02 18:32:53 · 60 阅读 · 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 · 64 阅读 · 1 评论