牛客82035003号
牛客82035003号
全部文章
分类
题解(161)
归档
标签
去牛客网
登录
/
注册
牛客82035003号的博客
全部文章
(共16篇)
题解 | #三数之和#
class Solution { public: vector<vector<int> > threeSum(vector<int> &num) {...
C++
数组
双指针
2022-10-08
0
284
题解 | #链表的奇偶重排#
struct ListNode* oddEvenList(struct ListNode* head ) { if(head == NULL) &n...
C
链表
双指针
2022-09-21
0
381
题解 | #划分链表#
首先搞清楚几个问题。 1、如果链表为空,返回空。 2、如果链表中根本没有x,怎么办?那么就把链表中比x小的数放到第一个比x大的数的前面。 3、反正最后的链表就是两部分:比x小的数全部在前部分,相对顺序不变;>=x的数在后半部分,相对位置不变。 那么就可以采用一次遍历,先...
双指针
链表
2022-09-17
0
299
题解 | #最长回文子串#
首先单独设置计算回文子串长度的函数。从中间向外围扩散找到左右不等时的边界就可求出回文子串的长度。 以A[0]为起点找回文串,直到A[len-2],共检查len-1次。 每次从A[i]开始是否存在回文子串时,分别判断奇数形式aba和偶数形式abba是否存在,取二者的大者为本轮找到的最大回文...
字符串
双指针
2022-09-17
0
380
题解 | #重排链表#
1、找到后半段链表的起始位置,将后半段结点逐个拆下来用头插法进行反转, 2、然后把反转后的链表结点一个一个插入到前半段链表中,注意间隔一个插一个。 void reorderList(struct ListNode* head ) {&nbs...
C
链表
双指针
2022-09-09
0
292
题解 | #删除有序链表中重复的元素-II#
1.首先加上一个空的头结点,便于处理删除第一个结点的情况。 2.需要设一个pre指针跟踪工作结点及记录一路留下来的结点。 3.用2个指针p,q来比较结点值是否相同。 4.不同时,pre指向p,p指向q,q指向q->next。 5.相同时,继续看q的后面是否还有一样,直到...
C
链表
双指针
2022-09-08
4
393
题解 | #删除升序数组的重复元素(一)#
双指针。 遇到相同的,后指针后移一步。 遇到不同的,把后指针指向的元素复制到前指针的下一个位置,后指针再后移一位继续比较。 int reArrangeArray(int* nums, int numsLen ) { &nbs...
数组
C
双指针
2022-08-31
0
302
题解 | #链表的中间结点#
结点个数为奇数时只有一个中心结点,为偶数时有两个中心结点,返回第二个,
C
链表
双指针
2022-08-30
0
389
题解 | #无环单链表插值#
第一步:根据给的有序数组,用尾插法新建一个有序链表。 第二步:通过双指针找到结点应该插入位置的前驱和后继。 第三步:插入该结点。 struct ListNode* insert(int* A, int ALen, int&n...
C
链表
双指针
2022-08-30
0
415
题解 | #翻转单词序列#
1.先整体反转。方法是用首尾指针交换两个元素并让指针向中间移动直到相遇。 2.再以单词为界局部反转。方法同样是首尾指针法,关键是找到左右边界,左边界是第一个不是空格的位置,用指针i做好标记,然后用另一个指针j继续遍历寻找第一个空格出现的位置,j-1即为右边界,如此一个一个单词反转。 voi...
C
字符串
双指针
2022-08-29
0
334
首页
上一页
1
2
下一页
末页