Bad man
Bad man
全部文章
分类
归档
标签
去牛客网
登录
/
注册
Bad man的博客
全部文章
(共125篇)
题解 | #向左移动牛群II#
知识点:二维数组由于题目数据量较小,我们可以直接模拟k次移动即可,需要注意的地方在于临时数组,对于一次移动来说,我们需要原数组和新数组两个数组,我们可以直接创建一个新数组,存放移动过一次的结果,也可以对原数组进行深拷贝,得到完全一样的数组,参照拷贝数组对原数组进行更改。Java题解如下 import...
2023-08-14
0
371
题解 | #牛的编号异或问题#
知识点:异或题目本身有问题,“现在农夫想知道,在某个区间 [left, right] 内,所有牛的编号 按位异或 的结果是多少(包含 left 、right 端点)。”应该改为(left, right]区间,即不包括left端点。对于从1到n的异或操作,是有规律的:通过将n与4模化,找到n的余数。如...
2023-08-13
0
434
题解 | #牛群的标签和#
知识点:双指针要求得到四个元素和为target的四元组,且按升序排列,故原数组的顺序不会影响答案,我们可以先对原数组进行排序,我们可以先确定前两个数,然后对后两个数采用双指针的方式遍历剩余位置,先将左右指针放置在剩余位置两侧,再将左右指针向内靠拢,以遍历剩余位置,若当前和小于目标和,则左指针向右移动...
2023-08-12
0
338
题解 | #牛的回文编号II#
知识点:双指针,字符串首先要将整数部分和小数部分分割开来,分别进行判断,对于小数部分,我们还要删除末尾的零,处理完成后,要对两个字符串进行回文串判断,具体来说,使用双指针指向字符串两侧,若指向字符相同,则向内靠拢,直至重叠,说明是回文字符串,否则不是。Java题解如下 import java.uti...
2023-08-12
0
405
题解 | #编号子回文I#
知识点:双指针对于最长回文子串的判断,我们可以从任意位置开始,双指针向两侧移动,直至左右指针指向不同的字符为止,当当前的回文子串长度大于已记录的回文子串长度时,更新全局指针。对于回文串来说,可能出现长度为奇数和偶数的情况,故双指针的起始位置要分情况讨论,当左右指针初始位置相同时代表奇数长度的回文子串...
2023-08-12
0
377
题解 | #最小体重积#
知识点:二维动态规划首先理解一下题目,我们要从左上角移动至右下角,得到最小的元素值之积,题目已说明,可以向上下左右移动,但是,题目数据范围说明,不存在元素值小于等于0的元素,故向上或向左并不是最佳的路线,也并不会降低元素值的乘积,甚至会增大,故我们只需要考虑向右和向下两种情况即可。每一步定义为到达当...
2023-08-12
0
405
题解 | #牛群的喂养顺序#
知识点:栈,哈希表已知有些元素需要有先后顺序,我们使用哈希表来存储序列关系,key为先放置的元素,value为后放置的元素,首先我们可以先排列没有前置条件的元素,然后对于每一个元素,判断该元素是否为前置元素,若是,则添加后置元素,重复以上步骤,直至没有后置元素可排列。具体来说,我们可以使用栈来实现,...
2023-08-12
0
390
题解 | #牛奶产量总和#
知识点:二叉树,深度优先搜索,回溯这道题目的本质还是遍历所有的根节点到叶子节点的路径,同时记录所遍历过的元素值,因为题目要求要将元素值拼接起来,所以我们应该使用字符串来存储遍历过的元素,到达叶子节点时,将其转换为整型,累加结果。对于Java来说需要注意的是,如要使用StringBuilder或者St...
2023-08-12
0
329
题解 | #牛群仰视图#
知识点:二叉树,深度优先遍历这道题目最好使用深度优先遍历,核心的思想在于找到所有的叶子节点,如果是使用层序遍历,我们不能保证二叉树是满二叉树,也就是不能保证所有的叶子节点都在最下面一层,使用层序遍历也就无法保证叶子节点从左往右的顺序排列。而对于DFS来说,我们无论使用先序遍历、中序遍历还是后序遍历,...
2023-08-12
0
371
题解 | #牛群最小体重差#
知识点:二叉搜索树,中序遍历对于二叉搜索树来说,中序遍历即为元素升序排列的结果,题目要求找到元素间的最小差值,而我们通过中序遍历可以得到元素升序排列的结果,故我们只需要比较中序遍历中相邻的两个节点值,通过相邻的节点值来寻找元素间的最小差值,具体来说,定义一个节点pre,初始为空,每次将其赋值为上一个...
2023-08-11
0
361
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页