Bad man
Bad man
全部文章
分类
归档
标签
去牛客网
登录
/
注册
Bad man的博客
全部文章
(共125篇)
题解 | #牛的品种排序II#
知识点:排序题目给出一个只有0,1,2的数组,我们需要将其顺序排列,我们可以先找出数组中0,1,2的个数,也就是确定0,1,2的边界位置,得到个数之后,我们就可以根据下标来确定该位置的具体元素。Java题解如下 import java.util.*; public class Solution ...
2023-07-29
0
379
题解 | #牛的品种排序I#
知识点:数组,排序题目要求将0排列在数组左边,将1排列在数组右边,我们可以遍历一次原数组,找出0的个数,之后,将剩余位置全部补1,得到结果数组。Java题解如下 import java.util.*; public class Solution { /** * 代码中的类名、方...
2023-07-29
0
391
题解 | #牛群的最大能量环#
知识点:动态规划对于一个环形的数组,要找到其最大的子数组和,第一想法是进行两轮遍历,但是这种方法有个缺陷,题目要求每一个元素只能出现一次,而我们无法确定第二次遍历是是否包含了同一个元素,故这种方法是行不通的。我们可以换一种思路,对于一个数组来说,最大的子数组和有两种情况:一种是没有跨过环形边界,即不...
2023-07-29
0
458
题解 | #挤奶路径#
知识点:二维动态规划题目要求只能向下或者向右走,故到达一个点的方式一共有两种,要么是从上方向下,要么是从左方向右,到达当前点的路径数就等于到达上方点的路径数+到达左方点的路径数,若当前点位置为障碍物,则当前点的到达路径数为0,最终,我们可以得出右下角位置的到达路径数。Java题解如下 import ...
2023-07-28
0
376
题解 | #牛群的协作#
知识点:双指针,贪心这道题目要求我们找到各个数组之间的重叠部分最少是几个,我们首先要做的就是对数组进行排序,可以按照左端点升序排列,因为我们需要涵盖所有的数组,故我们可以使用贪心的思想,总是去考虑我们的右端点最多能涵盖几个数组。我们可以使用双指针,left指向我们目前没有统计的数组,再看该数组的右端...
2023-07-28
0
398
题解 | #牛群的位置排序#
知识点:二分查找题目要求使用时间复杂度为 O(log n) 的算法。我们就需要使用二分法来查找对应数据,这道题的难点在于对于数组中不存在的元素target,我们如何找到该target应该插入的位置。如果不存在,应该找到它按顺序插入的位置,我们先假设left和right已经相等,此时,我们还并没有找到...
2023-07-28
0
241
题解 | #牛群中的编号是否有效#
知识点:二叉树,搜索二叉树首先明确搜索二叉树的定义:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。我们可以使用递归的方式来解决,首先确定终止条件,若当前节点为空,返回true,若不为空,判断其左右节点是否为空,为空则符合搜索二叉树定...
2023-07-27
0
347
题解 | #重量级的一层#
知识点:二叉树,层序遍历基本的层序遍历操作:使用队列保存每一层的节点,每次遍历一层的节点,保存所有元素的和,统计该层元素和是否为最大,若为最大,则更新答案,并保存当前层的元素和。遍历完最后一层,得到的最大元素和层即为答案。Java题解如下: import java.util.*; /* * pu...
2023-07-27
0
329
题解 | #牛群Z字型排列#
知识点:二叉树,层序遍历不同于以往的层序遍历,这道题目要求以Z字型进行元素的遍历,我们可以使用一个标记flag,每隔一层将每层得到的元素进行反转,即可得到Z字型排列的效果。具体来说,我们还是像普通的层序遍历一样,获得每层的元素后,我们进行判定,若为双数层,则将list进行反转,再加入到最终结果中。J...
2023-07-27
0
348
题解 | #第k轻的牛牛#
知识点:快速排序对于时间复杂度为 O(n) 的方法,我们需要使用快速排序的思想。随机选择一个枢轴index,利用快速排序的方法,将大于该weights[index]的值移动到index右边,小于weights[index]的值移动到index左边,这样就做到了index位置的值一定是第index-1...
2023-07-26
0
235
首页
上一页
4
5
6
7
8
9
10
11
12
13
下一页
末页