![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 63
苍AoKaNa
这个作者很懒,什么都没留下…
展开
-
力扣双指针算法题目:快乐数
由图可知,这是一个有环链表,说起链表问题,在判断一个链表是否有环的时候,我们常用的思想就是快慢指针思想,通常来讲就是有两个指针slow和fast,slow初始化在第一个位置,fast初始化在第二个位置,slow一次走一格,fast一次走两格,如果slow指针可以和fast指针相遇,那么就说明这个链表是有环的。如何让快指针dfast每次推进两个格子,我们只要将fast目前所代表的数字调用一下bitsum得到它后面的一个数字,再让它后面的一格数字再次调用一下bitsum就可以了,这便是如下的代码。原创 2024-07-07 22:18:08 · 376 阅读 · 0 评论 -
力扣双指针算法题目:二叉树的层序遍历(BFS)
综上所述首先要进行的循环(需要被重复操作的步骤)是要判断q是否为空,这个while循环所需要循环的次数是直到整个二叉树节点全部都被层序遍历遍历完毕为止。因为二叉树第二层的节点就是第一层节点的子节点,所以这个时候我们只要使用第一层节点的指针域检索到第二层节点并且放入队q。紧接着第二个需要进行的循环便是对每个节点进行弹出q,再将其数据入v,最后将其子节点入q操作。接着,对二叉树的第二层进行遍历,先将第一层的节点从队列q中探出,然后将其数据放入数组v。经过这一步的操作,我们便完成了二叉树第一层的遍历。原创 2024-07-06 23:51:03 · 373 阅读 · 1 评论 -
力扣双指针算法题目:复写零
本题要求就是对于一个数组顺序表,将表中的所有“0”元素都向后再写一遍,且我们还要保证此元素之后的元素不受到影响,且复写零之后此数组顺序表的总长度不可以改变,所以溢出的元素直接忽略即可、空出此被复写的元素所需要的空间,然后对这个被空出来的空间填入0,或者将被复写的元素复制粘贴进去。所以我给出的思路就是将0元素之后的所有元素都向后移动一格,原创 2024-07-05 20:53:36 · 304 阅读 · 0 评论 -
双指针算法:快速排序模拟实现
/我们的目的是在一轮循环中用cur将nums全部遍历一遍,将比key小的数字全部移动到key左,是key成为分界节点。所以要将key和pre的指针和数据交换以达到”以key为分界点,key左边的数据整体比右边小“//如果cur遍历到一串连续<key的数据,那么可将这一串数据整合视为一类东西(都小于key)一轮循环结束时,以pre为分界点,除去key,pre左边的数字整体比右边小。2:但当cur>key时,cur继续向后遍历,直至cur<key才会停下。指针cur用于检测符合条件的数据。原创 2024-07-04 21:59:37 · 213 阅读 · 0 评论 -
力扣双指针算法题目:移动零
cur遇到零之后,des就不走,但是cur要接着走,此时cur指向零,des指向cur之前一个非0元素。在下一个循环中,cur不指向0,cur和des同时向前走一格,此时des指向零,cur不指向零。在非零区段中,des和cur一定是紧挨着的且cur一定比des快(cur在des右边)这个题目的思路和“使用递归排序快速排序解决数组的排序问题”相同。指针des和cur向右遍历。使用双指针des和cur。原创 2024-07-03 14:58:25 · 279 阅读 · 0 评论 -
力扣双指针算法题目:双数之和,三数之和,四数之和
输入一个递增排序的数组和一个数字s,在数组中查找两个数,使他们的和正好是s,如果有多对数字的和是s,则输出一对即可。原创 2024-07-02 14:38:16 · 749 阅读 · 0 评论