佛说wh
佛说wh
全部文章
分类
归档
标签
去牛客网
登录
/
注册
佛说wh的博客
全部文章
(共57篇)
题解 | #数组中出现次数超过一半的数字#
2022.0808算法第17题数组中出现次数超过一半的数字 这道题有多种解法,哈希表法、排序法、BM投票法等 哈希表法记录每个元素出现的次数,最后找出次数大于size/2的元素 排序法直接选择排序后中间位置的数字即可 BM投票法是将相邻两个元素判断是否相等,如果相等则计数+1...
哈希表
C++
2022-08-08
2
268
题解 | #包含min函数的栈#
2022.0807算法第16题包含min函数的栈 算法要求min的复杂度为常数,刚开始想到了用一个变量存储min,存储时更新min没有问题,但是在pop删除操作时就比较麻烦了。 如果栈顶元素为最小值,删除之后的最小值就不知道了。 因此需要其他的结构存储最小值,可以使用一个辅助栈进行...
栈
C++
2022-08-07
0
257
题解 | #两数之和#
2022.0807算法第15题两数之和 利用哈希表进行求解,也可暴力求解。 哈希表中查询元素时间复杂度为常数,这点是使用哈希表的关键。 遍历数组,计算当前值与目标值的差值,并在哈希表中查找差值, 哈希表中没有则将当前元素存入哈希表,找到直接返回即可。 对哈希表了解较少,...
哈希表
C++
2022-08-07
0
217
题解 | #用两个栈实现队列#
2022.0806算法第14题用两个栈实现队列 使用两个栈实现队列,需要将一个栈作为进,一个栈作为出。 push操作只需要存入stack1即可, pop操作需要对反转顺序的stack2进行操作。 首先需要判断stack2的数据是否需要更新,也就是stack2中是否还有...
栈
C++
2022-08-06
0
245
题解 | #求二叉树的层序遍历#
2020.0806算法第13题求二叉树的层序遍历 层序遍历需要使用队列的相关操作,每次将树的左节点和右节点先后存入队列, 然后循环访问每个节点的左子树和右子树,这样进入队列的顺序就是层序遍历的结果。 先将root节点存入队列, 之后每次都进行以下操作:循环条件为队列非...
二叉树
C++
2022-08-06
0
259
题解 | #二叉树的最大深度#
2022.0806算法第12题二叉树的最大深度 采用递归算法计算,递归左子树和右子树。 if(root==NULL) return 0; return max(maxDepth(root->left),maxDept...
二叉树
C++
2022-08-06
0
214
题解 | #二叉树的后序遍历#
2022.0806算法第11题二叉树的后序遍历 二叉树的三种遍历方法会一种,其他的也就能写出来了。 也是调整顺序,后序遍历为左右根,递归的方法还是最简单的方法。 void postorder(vector<int> &res,TreeNode*...
二叉树
C++
2022-08-06
0
233
题解 | #二叉树的中序遍历#
2022.0806算法第10题二叉树的中序遍历 学习了前序遍历之后,仍然采用递归的方法进行遍历。 此时只需要修改递归函数中访问的顺序即可。 中序遍历是左根右,按照这个顺序进行访问。 void inorder(vector<int> &re...
二叉树
C++
2022-08-06
0
257
题解 | #二叉树的前序遍历#
2022.0806算法第9题二叉树的前序遍历 二叉树的前序遍历为根左右,这种结构适合递归调用。 递归函数为每次都需要做的步骤,也就是遍历根左右。 void preorder(vector<int> &res,TreeNode* roo...
二叉树
C++
2022-08-06
0
230
题解 | #寻找峰值#
2022.0806算法第8道寻找峰值 寻找峰值采用二分法这个思想还是比较简单的,就是mid和相邻元素进行比较,确定两者的走向,将区间修正为可能存在峰值的区间。 if(nums[mid]> nums[mid+1]) r=mid;...
二分查找
C++
2022-08-06
0
256
首页
上一页
1
2
3
4
5
6
下一页
末页