牛客82035003号
牛客82035003号
全部文章
分类
题解(161)
归档
标签
去牛客网
登录
/
注册
牛客82035003号的博客
全部文章
(共166篇)
题解 | #重排链表#
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到最大的n位数#
int* printNumbers(int n, int* returnSize ) { int i = 0, j = 0; &nb...
C
数组
2022-08-30
0
359
题解 | #构建乘积数组#
方法一,双重循环,每一趟外循环就求出一个B[i]。在每趟外循环中,初始B[i]为1,然后避开A[i],只计算其他数的乘积。 int* multiply(int* A, int ALen, int* returnSize )&n...
C
数组
2022-08-29
0
329
题解 | #翻转单词序列#
1.先整体反转。方法是用首尾指针交换两个元素并让指针向中间移动直到相遇。 2.再以单词为界局部反转。方法同样是首尾指针法,关键是找到左右边界,左边界是第一个不是空格的位置,用指针i做好标记,然后用另一个指针j继续遍历寻找第一个空格出现的位置,j-1即为右边界,如此一个一个单词反转。 voi...
C
字符串
双指针
2022-08-29
0
334
题解 | #顺时针打印矩阵#
1.输入的是m*n的矩阵,采用大数组包小数组的形式,每行为一个数组,m个数组构成一个大数组。 2.输出的是一个一维数组,按照上-右-下-左的形式一次一条边地输出。 3.因为可能在上下左右任何一条边结束,所以在输出每条边时都要判断是否结束。 4.每遍历完一条边,该边的边界值就会改变,...
C
数组
2022-08-29
0
388
题解 | #Nim游戏#
n=1,2,3,时直接全拿走,必然获胜。n=4时,无论拿1,2,3个,留给对方的必然可以使对方获胜,己方输。 剩余i个时,应考虑的是拿走j(1<=j<=3)个时留下的个数能否使对方必输,那么己方就会赢。 bool NimGame(int n )&n...
C
脑筋急转弯
动态规划
数学
2022-08-26
0
277
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页