牛客82035003号
牛客82035003号
全部文章
分类
题解(161)
归档
标签
去牛客网
登录
/
注册
牛客82035003号的博客
全部文章
(共166篇)
题解 | #只出现一次的数字(二)#
int singleNumber(int* nums, int numsLen ) { int sum = 0; ...
C
数组
2022-09-21
0
321
题解 | #链表的奇偶重排#
struct ListNode* oddEvenList(struct ListNode* head ) { if(head == NULL) &n...
C
链表
双指针
2022-09-21
0
381
题解 | #在二叉树中找到两个节点的最近公共祖先#
struct TreeNode* helper(struct TreeNode* root, int o1, int o2){ if(root ==&...
C
二叉树
2022-09-21
0
345
题解 | #链表相加(二)#
思路:将两个链表分别反转,同时新建一个头结点准备链接相加后的值。 然后两个从头开始逐位相加,进位的和留下来准备并入下一个结点的计算中,剩下的值放入一个新建的结点中,并按尾插法链入新表中。 最后把链表反转。 struct ListNode* reverse(stru...
C
链表
2022-09-21
0
402
题解 | #连续子数组的最大乘积#
每次检验一个数是否加入最大乘积子数组都要判断这个数加入后是否会让乘积变大。而当前值可能为正或为负,那么乘积可能变大或变小。 于是每次都记录最大乘积和最小乘积,然后分别乘上当前值再比较,同时注意还有当前值就是最大的情况。 于是用最大乘积数组dp_max, 和最小乘积数组dp_min。也会用...
C
数组
动态规划
2022-09-20
0
506
题解 | #调整数组顺序使奇数位于偶数前面(一)#
方法1——用一个新数组接收原数组中的偶数,通过一次遍历,把奇数留在原数组,按顺序从下标0开始放;把偶数依次放在新数组。 一次遍历完后,把偶数数组元素依次全部复刻到新数组后面接上即可。 int* reOrderArray(int* array, int ...
C
数组
2022-09-19
0
421
题解 | #链表中的节点每k个一组翻转#
新设一个头结点方便操作,然后用三个指针pre,cur,tmp针对每k个元素进行一次反转,一轮反转之后更新pre为新的cur继续下一轮反转。 而反转的轮数需要根据结点总数来确定,所用先遍历一遍求出总结点数,除以k求出轮数。 struct ListNode* reverse...
C
链表
2022-09-19
0
451
题解 | #数组中只出现一次的两个数字#
比如:{1,3,4,2,7,3,1,2} 第一步,全部异或的结果也就是4异或7的结果,记作s,0100^0111=0011。 原理1:相同的数异或结果为0,两个不同的数异或结果不为0,那么必有某个位为1,找出最低位的1. 第二步:上一步的结果s和0001按位与,看最低位是否为1,不...
C
数组
2022-09-18
0
393
题解 | #矩阵的最小路径和#
1、为了节省空间,就不专门建二维数组存储路径和,而直接在原数组中记录,将每个位置的权值改为到该位置的最短路径。 2、先处理首行,每个位置只可能从左边来,route[0][i]=route[0][i]+route[0][i-1],即从第二个位置开始均要加上前面位置的路径。 3、然后处理首列...
C
数组
2022-09-14
1
407
题解 | #链表内指定区间反转#
tip1:先找到待反转链表的前一个结点,然后把待反转的结点一个个拆下来用头插法构建一个反转的链表,最后把链表接回到原链表中去。 tip2:鉴于这里没有头结点,增加一个空的头结点更方便操作从第一个结点开始反转的情况。 tip3:注意链表尾部置空的问题。 struct List...
C
链表
2022-09-12
0
340
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页