Bad man
Bad man
全部文章
分类
归档
标签
去牛客网
登录
/
注册
Bad man的博客
全部文章
(共125篇)
题解 | #牛群排列的最大深度#
知识点:二叉树,递归对于二叉树的深度,有可能是右子树更深,也有可能是左子树更深,故对于一个节点来说,我们需要取二者的最大值作为当前节点能够达到的深度。对于一个节点来说,有两种情况:1.当前节点为空,返回0;2.当前节点不为空,返回1+左右节点深度的最大值。Java题解如下 import java.u...
2023-08-01
0
324
题解 | #二叉树之寻找第k大#
知识点:二叉搜索树,中序遍历二叉搜索树的性质是当前节点的左子树节点值均小于当前节点值,右子树节点值均大于当前节点值,而中序遍历刚好是所有节点顺序排列的结果。要想获得第k大的节点值,我们可以将中序遍历的顺序反过来,先遍历右节点,然后遍历当前节点,最后遍历左节点,这样得到的就是逆序的节点排列,当遍历到第...
2023-08-01
0
375
题解 | #第k轻的牛牛#
知识点:二叉搜索树,中序遍历二叉搜索树的性质是当前节点的左子树节点值均小于当前节点值,右子树节点值均大于当前节点值,而中序遍历刚好是所有节点顺序排列的结果。要想获得第k小的节点值,我们只需要利用中序遍历,遍历到达第k个节点时,将其节点值保存下来返回即可。Java题解如下 import java.ut...
2023-08-01
0
213
题解 | #牛的体重统计#
知识点:哈希表遍历两个数组,使用getOrDefault方法,将元素和出现次数存入HashMap中,若不存在,则次数为1,若存在,则将出现次数+1,使用Entry来遍历HashMap,获得出现次数最多且元素值最大的元素,即为答案。Java题解如下 import java.util.*; publ...
2023-08-01
0
313
题解 | #连续的牛群标签序列#
知识点:哈希表题目要求时间复杂度为O(n),就确定了我们无法使用排序来解决,要想找到最长的连续序列,就需要找到每段序列中最小的元素,我们可以使用Set集合来存储所有的元素,对于一个元素num来说,当集合中不存在num - 1时,说明该元素为序列中最小的元素,我们就可以以此为起点,逐渐增大元素,并且判...
2023-08-01
0
348
题解 | #牛圈围栏问题#
知识点:回溯这是一道经典的括号匹配问题,对于左右括号来说,都有可能出现,左括号根据总括号对数进行添加,右括号根据左括号的个数进行添加,每增加一个字符,就可以根据以上两种情况进行判断,分别增加对应的字符,当左右括号个数都达到最大个数后,即可将其字符串保存起来作为一种情况,回溯遍历所有情况即可得到答案。...
2023-07-31
0
424
题解 | #童谣寻找问题#
知识点:二维数组,回溯,广度优先搜索对于在二维数组中的搜索问题,首先要想到的就是对每一个点进行四个方向上的遍历,而这道题特殊的点在于我们要按规定的顺序进行查找,故需要字符串来约束我们进行查找的范围,使用一个visited二维数组来对使用过的字符进行标记,防止重复使用,当我们的搜索长度达到字符串的长度...
2023-07-31
2
327
题解 | #疯牛病II#
知识点:二维数组,广度优先搜索遍历二维数组,找出元素值为2的所有位置,将其加入到队列中,每分钟将队列中的所有元素出队,判断四个方向中是否有值为1的元素,若有,则将其更新为2,并入队,也表示可以进行下一轮的搜索,重复以上操作,直至没有相邻的值为1的元素,最后,遍历一遍数组,若仍然存在值为1的元素,则返...
2023-07-31
1
328
题解 | #疯牛病I#
知识点:二维数组,广度优先遍历遍历二维数组,找出元素值为2的所有位置,将其加入到队列中,每过一分钟,k-1,将队列中的所有元素出队,判断四个方向中是否有值为1的元素,将其更新为2,并入队,重复以上操作,直至k=0,最后,遍历一遍数组,得到所有值为1的元素个数,即为答案。Java题解如下 import...
2023-07-31
0
369
题解 | #子群的标签和#
知识点:前缀和,哈希表对于判断子数组的和,可以通过前缀和和哈希表的方式,将每一个前缀和作为key,下标作为value,每次获取到新的前缀和,可以在map中判断是否存在preSum-k的前缀和,也就是二者的区间和为k,若存在,则保存下来该区间的子数组,加入到TreeSet中。此处使用的是TreeSet...
2023-07-31
0
491
首页
上一页
2
3
4
5
6
7
8
9
10
11
下一页
末页