logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

考研算法35天:三元组的最小距离 【双指针,滑动窗口,多路归并】

这道题就是一般做法是先通过排序将三个数组排好然后再进行三指针求最小。但是我们仔细考虑一下,如果我们先将这三个数组排好序那么势必需要额外开一个数组,那么空间复杂度就变成了O(N)。我认为只需要三个指针每次如果谁小于等于其他两个指针就算一次res(式子的值)=(max - min)*2。然后将最小的那个指针向后移动(目的:减小三个指针之间的值)。就变成了len = 2 * (max(a,b,c) -

文章图片
#算法
考研笔试刷题第五天: 链表公共节点【链表操作】

此时我们设a的长度大于b的长度,那么肯定是p先到公共部分c,然后q在后面赶着p,那么他们走完c都不会相遇,那咋办呢?其实我们可以这样当p走完发现没有和q相遇的时候,我们让p再指向b,让q指向a,然后继续走,当p走完b,然后q走完a此时一定会相遇。我们设一个指针p指向链表a的头结点,另一个指针q指向链表b,我们让p,q两个节点分别开始运动,当a的长度等于b的长度,那么这两个节点一定会慢慢移动并移动到

文章图片
#考研#算法#c++ +2
到底了