数据结构初阶
文章平均质量分 64
数据结构初阶内容,链表到 二叉树排序
xwy13886467077
这个作者很懒,什么都没留下…
展开
-
顺序表OJ题
解法2:两个指针,一个指向num1最后一个元素,一个指向num2最后一个元素,比较这两个元素的值,取大的放到num1后面,同时这个指针向前走。解法2:只要src不是指向val,就把它赋值给dest指针的值,且dest指针往后走,如果是dest指针不动,src指针往后走。在数组中原地复制的方法,一个src指针向后走,如果不是相同元素,则复制到dest的位置,dest也向后走一个。解法1:将数组中不同的元素拷贝到一个新数组中,之后再拷贝回去。,返回删除后数组的新长度。的元素,并返回移除后数组的新长度。原创 2023-08-29 10:01:16 · 38 阅读 · 2 评论 -
时间与空间复杂度oj题
解法2:我们可以再创建一个数组,长度与原来数组等长(N),k始终为k%N,之后先将原来数组最后的 k的数据复制到新数组的前K个位置上面,再把原来数组N-K的长度个数据复制过去,再一起拷贝回原来数组,空间复杂度O(N),时间复杂度O(N).解法四:我们可以知道两个相同的数字异或结果为0,0和任何数异或结果都是它本身,所以我们可以将0-n的所有数异或之后存起来,之后再与数组中的数异或。解法1:暴力求解,对于每个0到n每个数字都去数组里面找,找不到就返回,时间复杂度O(N²),将数组中的元素向右轮转。原创 2023-08-28 15:23:03 · 55 阅读 · 1 评论 -
单链表OJ题02
解法1:暴力求解,使用一个newhead的头节点,先把原来链表节点复制之后插入其中,后面关键是random,我们可以使用两个指针,先用count记录每个节点的random对于头节点的位置,再复制节点的random走相应位置即可。解法:如果单纯的判断两个链表是否相交,只需要判断他们的尾节点是否相同,但是该题还需要返回它们相交的第一个节点,所以我们需要让长链表先走链表长度的步差步数,再同时走,当它们相同时返回该节点。指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。原创 2023-09-01 21:54:25 · 36 阅读 · 1 评论 -
单链表oj题01
解法:用两个指针比较两个链表,取小的尾插到新头之中,同时该指针向后走,当有一个走到头,退出循环,将另一个的尾指针指向这个未走到头的指针。解法2:快慢指针,快指针先走k步,慢指针开始同时走,快指针走到链表结尾,慢指针所指向的位置就是倒是第k个节点。解法1:先逆转链表,逆转之后循环链表判断两个链表是否值都相同,如果全部相同,则证明其为回文结构。解法2:快慢指针,一个指针走一步,一个指针走两步,快指针走到头,慢指针刚好到一半的位置。使用循环方法,需要三个指针,一个记录第三个节点位置,另外两个实现指针的反转。原创 2023-08-30 21:12:40 · 67 阅读 · 0 评论 -
栈与队列Oj题
解法:关键是push和pop操作,我们可以push时将它全部push到一个队列中,下次push依然push到该队列之中,然后需要pop时,先把前n-1个元素push到另一个队列中,再pop剩余那一个元素,再次pop时依然如此,将这些元素前n-1个元素移动到空队列,再pop剩余那一个。我们将两个栈分为一个pop栈,一个push栈,每次加入元素总是加入push栈中,删除元素总是在pop栈之中,当pop栈为空,那么将push栈元素全部给pop栈即可。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。原创 2023-09-03 18:57:22 · 48 阅读 · 0 评论