牛客500979850号
牛客500979850号
全部文章
题解
归档
标签
去牛客网
登录
/
注册
牛客500979850号的博客
全部文章
/ 题解
(共33篇)
题解 | #二叉搜索树的后序遍历序列#
方法一:递归 较自然的思路,遵循后序遍历的规则:左子树->右子树->根节点。因此当前序列的最后一个值即为根节点,且左子树<根节点<右子树。每次遍历当前序列,根据大小顺序判断是否符合条件,同时得到左右子树序列,并递归调用函数判断子树序列是否符合条件。class Solutio...
2021-07-17
6
952
题解 | #从上往下打印二叉树#
方法一:BFS 题目很简单,从上往下层层遍历并打印节点值即可,用一个队列来存储节点,遍历打印当前节点的值,并将子节点入队。class Solution { public: vector<int> PrintFromTopToBottom(TreeNode* root) { ...
2021-07-16
0
799
题解 | #栈的压入、弹出序列#
方法一:模拟栈的压入、弹出 利用一个辅助栈来模拟栈的压入和弹出。遍历popV序列,并每次判断当前是直接从栈中弹出,还是需要先压入一些序列后再弹出。代码如下 class Solution { public: bool IsPopOrder(vector<int> pushV,vect...
2021-07-16
0
568
题解 | #反转链表#
方法一: 将链表中的值提取出来,然后分配新的链表节点组成新链表。代码如下: class Solution { public: ListNode* ReverseList(ListNode* pHead) { ListNode *p,*t; int q; //...
2021-07-15
1
1399
题解 | #调整数组顺序使奇数位于偶数前面#
方法一: 暴力方法,有较大改进空间。使用两个额外数组,分别用来存奇数和偶数,遍历原数组,根据数的奇偶将其存入不同的数组,最后将两个数组整合到一起即可。class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 ...
2021-07-15
0
727
题解 | #用两个栈实现队列#
解题方法: 如下图所示,我们使用将push操作放到stack1中,将pop操作放到stack2中,当pop操作且stack2为空时,将stack1中所有元素转入stack2中即可。图解如下: 代码如下: class Solution { public: void push(int n...
2021-07-15
3
1170
题解 | #数组中只出现一次的两个数字#
方法一: 直接使用哈希表,用哈希表的额外内存空间来记住当前数字出现的次数,出现两次的会被删除,只剩下两个出现一次的数字。 代码如下: class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 ...
2021-07-15
1
710
题解 | #顺时针旋转矩阵#
方法一: 暴力,从头开始找到第一个值为k的元素,再计算连续的k的个数即可。缺点:没有利用好有序数组的特性。 代码如下: class Solution { public: int GetNumberOfK(vector<int> data ,int k) { i...
2021-07-15
2
797
题解 | #顺时针旋转矩阵#
解题思路: 本题主要在于找出顺时针旋转90°后的矩阵与原矩阵对应位置之间的关系和规律。 方法一: 找出整体的规律,并使用一个辅助数组来存储新的矩阵。 从上图中的矩阵旋转来看:原矩阵元素的列数变成新矩阵元素的行数;原矩阵元素的行数是第2行,旋转后元素的列数是从右往左倒数第2列。因此对于原矩...
2021-07-14
10
1626
题解 | #最长回文子串#
方法一:暴力解法 最直接粗暴的方法,但是时间复杂度很高。按照子串起始位置和结束位置,遍历所有可能的子串,即 left:0->n-1, right:left+1->n-1。再每次通过while循环判断该子串是否是回文串。 第一层循环为子串起始位置,第二层循环为子串结束位置,第三层循环为判...
2021-07-14
17
2335
首页
上一页
1
2
3
4
下一页
末页