牛客82035003号
牛客82035003号
全部文章
分类
题解(161)
归档
标签
去牛客网
登录
/
注册
牛客82035003号的博客
全部文章
(共200篇)
题解 | #重建二叉树#
利用递归根据前序遍历和中序遍历重建二叉树 class Solution { public: TreeNode* reConstructBinaryTree(vector<int> pre,vect...
C++
二叉树
递归
2022-10-08
0
383
题解 | #三数之和#
class Solution { public: vector<vector<int> > threeSum(vector<int> &num) {...
C++
数组
双指针
2022-10-08
0
284
题解 | #只出现一次的数字(二)#
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
504
题解 | #调整数组顺序使奇数位于偶数前面(一)#
方法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
3
4
5
6
7
8
9
10
下一页
末页