坚果的博客
华为开发者专家(HDE),润开鸿生态技术专家, OpenHarmony布道师,OpenHarmony校源行开源大使,InfoQ签约作者,电子发烧友鸿蒙MVP,51CTO博客专家博主,阿里云博客专家,专注于前端技术的分享,包括鸿蒙,ArkUI-X,Flutter,小程序,如果你迷茫,不妨来瞅瞅码农的轨迹,也期待你加入坚果派!
展开
-
2023年,你要去华为吗?
走od的话面试比较水也不卡简历,机试过了面试手撕代码做出来了那就稳了,工作时间短不好跳槽的、学校差一点的、一心想挣钱的都可以考虑把这个作为一条出路。从个人能力上来讲,好多人是进不去华为的。积极主动,勇于承担尝试,好工作要抢过来自己做;及时同步工作进展,包括已完成、待完成,存在的风险困难等内容,要让领导知道你的工作情况;勤于总结提炼输出,形成个人 DNA,利人利己;有不懂的可以随时找人问,脸皮要厚,虚心求教;不管多忙,所有的会议,不论大小,都要有会议纪要,邮件发给相关人……原创 2023-03-27 09:05:20 · 14452 阅读 · 7 评论 -
华为OD机试 -删除字符串中出现次数最少的字符(Java) | 机试题+算法思路+考点+代码解析 【2023】
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。注意每个输入文件有多组输入,即多个字符串用回车隔开数据范围:输入的字符串长度满足 1≤n≤20 ,保证输入的字符串中仅出现小写字母。原创 2023-03-13 20:55:52 · 772 阅读 · 0 评论 -
华为OD机试 -停车场车辆统计(Java) | 机试题+算法思路+考点+代码解析 【2023】
从控制台读取一个字符串,计算字符串中1的最少分组数量,并输出结果。用到的集合和知识点有:Scanner类,String类,Math类,split()方法,replaceAll()方法,ceil()方法等。车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位(长度3)。整型字符串数组cars[],其中1表示有车,0表示没车,数组长度小于1000。特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。1个货车占第1、2个车位。1个小车占第1个车位。原创 2023-03-13 20:55:31 · 957 阅读 · 0 评论 -
华为OD机试 -字符串变换最小字符串(Java) | 机试题+算法思路+考点+代码解析 【2023】
给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照进行比较)。变换规则:交换字符串中任意两个不同位置的字符。原创 2023-03-13 20:54:06 · 769 阅读 · 0 评论 -
华为OD机试 -玩牌高手(Java) | 机试题+算法思路+考点+代码解析 【2023】
给定一个长度为n的整型数组,表示一个选手在n轮内可选择的牌面分数。选手基于规则选牌,请计算所有轮结束后其可以获得的最高总分数。选择规则如下:1、在每轮里选手可以选择获取该轮牌面,则其总分数加上该轮牌面分数,为其新的总分数。2、选手也可不选择本轮牌面直接跳到下一轮,此时将当前总分数还原为3轮前的总分数,若当前轮次小于等于3(即在第1、2、3轮选择跳过轮次),则总分数置为0。3、选手的初始总分数为0,且必须依次参加每一轮。原创 2023-03-13 20:51:01 · 1002 阅读 · 0 评论 -
华为OD机试 -矩阵最大值(Java) | 机试题+算法思路+考点+代码解析 【2023】
给定一个仅包含0和1的N*N二维矩阵,请计算二维矩阵的最大值,计算规则如下:1、 每行元素按下标顺序组成一个二进制数(下标越大越排在低位),二进制数的值就是该行的值。矩阵各行值之和为矩阵的值。2、允许通过向左或向右整体循环移动每行元素来改变各元素在行中的位置。比如: [1,0,1,1,1]向右整体循环移动2位变为[1,1,1,0,1],二进制数为11101,值为29。[1,0,1,1,1]向左整体循环移动2位变为[1,1,1,1,0],二进制数为11110,值为30。原创 2023-03-13 20:49:53 · 932 阅读 · 0 评论 -
华为OD机试 -矩阵扩散(Java) | 机试题+算法思路+考点+代码解析 【2023】
存在一个mn的二维数组,其成员取值范围为0或1。其中值为1的成员具备扩散性,每经过1S,将上下左右值为0的成员同化为1。二维数组的成员初始值都为0,将第[i,j]和[k,l]两个个位置上元素修改成1后,求矩阵的所有元素变为1需要多长时间。输入描述:输出数据中的前2个数字表示这是一个mn的矩阵,m和n不会超过1024大小;中间两个数字表示一个初始扩散点位置为i,j;最后2个数字表示另一个扩散点位置为k,l。原创 2023-03-13 20:50:39 · 1048 阅读 · 0 评论 -
华为OD机试 -获得完美走位(Java) | 机试题+算法思路+考点+代码解析 【2023】
在第一人称射击游戏中,玩家通过键盘的ASDW四个按键控制游戏人物分别向左、向后、向右、向前进行移动,从而完成走位。假设玩家每按动一次键盘,游戏人物会向某个方向移动一步,如果玩家在操作一定次数的键盘并且各个方向的步数相同时,此时游戏人物必定会回到原点,则称此次走位为完美走位。ASDA),请通过更换其中一段连续走位的方式使得原走位能够变成一个完美走位。其中待更换的连续走位可以是相同长度的任何走位。请返回待更换的连续走位的最小可能长度。若果原走位本身是一个完美走位,则返回0。原创 2023-03-13 20:40:46 · 940 阅读 · 0 评论 -
华为OD机试 -去除多余空格(Java) | 机试题+算法思路+考点+代码解析 【2023】
去除文本多余空格,但不去除配对单引号之间的多余空格。给出关键词的起始和结束下标,去除多余空格后刷新关键词的起始和结束下标。length。原创 2023-03-13 20:40:04 · 908 阅读 · 0 评论 -
华为OD机试 - 整数编码(Java) | 机试题+算法思路+考点+代码解析 【2023】
第一个字节最高位置1,剩余的7位存储数字1000的第一个低7位(110 1000),所以第一个字节的二进制为1110 1000,即E8;第二个字节最高位置0,剩余的7位存储数字1000的第二个低7位(000 0111),所以第一个字节的二进制为0000 0111,即07;2、字节的最高位表示后续是否还有字节,置1表示后面还有更多的字节,置0表示当前字节为最后一个字节。字节的最高位置0,剩余7位存储数字100的低7位(110 0100),所以编码后的输出为64。3、采用小端序编码,低位和低字节放在低地址上。原创 2023-03-13 20:39:33 · 965 阅读 · 0 评论 -
华为OD机试 -匿名信(Java) | 机试题+算法思路+考点+代码解析 【2023】
电视剧《分界线》里面有一个片段,男主为了向警察透露案件细节,且不暴露自己,于是将报刊上的字减下来,剪拼成匿名信。现在又一名举报人,希望借鉴这种手段,使用英文报刊完成举报操作。但为了增加文章的混淆度,只需满足每个单词中字母数量一致即可,不关注每个字母的顺序。解释:单词on允许通过单词no进行替代。报纸代表newspaper,匿名信代表求报纸内容是否可以拼成匿名信。原创 2023-03-13 20:40:45 · 905 阅读 · 0 评论 -
华为OD机试 -找终点(Java) | 机试题+算法思路+考点+代码解析 【2023】
实现的功能是输入一个由 n 个整数组成的字符串 nums,其中 nums[i] 表示从第 i 个位置可以向右跳 nums[i] 步。要求输出在最少的跳跃次数下能够跳到 nums 数组的最后一个位置的步数(包括起点和终点),如果不能跳到,则输出 -1。给定一个正整数数组,设为nums,最大为100个成员,求从第一个成员开始,正好走到数组最后一个成员,所使用的最少步骤数。2、从第二步开始,只能以所在成员的数字走相应的步数,不能多也不能少, 如果目标不可达返回-1,只输出最少的步骤数量。原创 2023-03-13 20:40:08 · 1082 阅读 · 0 评论 -
华为OD机试 -执行时长(Java) | 机试题+算法思路+考点+代码解析 【2023】
为了充分发挥GPU算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务,假设GPU最多一次执行n个任务,一次执行耗时1秒,在保证GPU不空闲情况下,最少需要多长时间执行完成。第一个参数为GPU一次最多执行的任务个数,取值范围[1, 10000]第二个参数为任务数组长度,取值范围[1, 10000]一次最多执行3个任务,最少耗时6s。一次最多执行4个任务,最少耗时5s。试题来源:华为 OD 联盟整理收集。执行完所有任务最少需要多少秒。原创 2023-03-13 20:37:44 · 1001 阅读 · 0 评论 -
华为OD机试 -整数对最小和(Java) | 机试题+算法思路+考点+代码解析 【2023】
假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素,并对取出的所有元素求和,计算和的最小值。输入两行数组array1、array2,每行首个数字为数组大小size(0 < size原创 2023-03-13 20:39:02 · 921 阅读 · 0 评论 -
华为OD机试 -敏感字段加密(Java) | 机试题+算法思路+考点+代码解析 【2023】
给定一个由多个命令字组成的命令字符串;127""请对指定索引的敏感字段进行加密,替换为******(6个),并删除命令字前后多余的下划线_。如果无法找到指定索引的命令字,输出字符串ERROR。原创 2023-03-13 20:36:39 · 908 阅读 · 0 评论 -
华为OD机试 - 整型数组按个位值排序(Java) | 机试题+算法思路+考点+代码解析 【2023】
涉及的主要集合有Map和StringBuilder,主要的知识点包括Scanner类的使用、Java基础语法、集合框架以及异常处理等。给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。给定一个非空数组,其元素数据类型为32位有符号整数,数组长度[1, 1000]当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。试题来源:华为 OD 联盟整理收集。原创 2023-03-13 20:36:00 · 805 阅读 · 0 评论 -
华为OD机试 -日志采集系统(Java) | 机试题+算法思路+考点+代码解析 【2023】
日志采集是运维系统的的核心组件。日志是按行生成,每行记做一条,由采集系统分批上报。如果上报太频繁,会对服务端造成压力;如果上报太晚,会降低用户的体验;如果一次上报的条数太多,会导致超时失败。111100。原创 2023-03-13 20:35:26 · 1020 阅读 · 0 评论 -
华为OD机试 - 最长连续子串(Java) | 机试题+算法思路+考点+代码解析 【2023】
给定一个字符串 只包含字母和数字按要求找出字符串中的最长连续子串的长度字符串本身是其最长的子串子串要求(a~z A~Z)-1。原创 2023-03-13 20:34:55 · 900 阅读 · 1 评论 -
华为OD机试 -找朋友(Java) | 机试题+算法思路+考点+代码解析 【2023】
同时还有异常捕获和处理的语法。请重新生成一个列表,对应位置的输出是每个小朋友的好朋友位置,如果没有看到好朋友,请在该位置用0代替。第一个小朋友身高100,站在队尾位置,向队首看,没有比他身高高的小朋友,所以输出第一个值为0。第i个小朋友可以看到的第一个比自己身高更高的小朋友j,那么j是i的好朋友(要求j > i)。在学校中,N个小朋友站成一队, 第i个小朋友的身高为height[i],第二行输入N个小朋友的身高height[i],都是整数。124的好朋友是2位置上的125。输出N个小朋友的好朋友的位置。原创 2023-03-13 20:34:14 · 1035 阅读 · 0 评论 -
华为OD机试 -字符串筛选排序(Java) | 机试题+算法思路+考点+代码解析 【2023】
k如果大于字符串长度,则输出最大ascii值的字母所在字符串的位置索引,如果第k个最小ascii码值的字母存在重复,则输出该字母的最小位置索引。输入一个由n个大小写字母组成的字符串,按照Ascii码值从小到大的排序规则,查找字符串中第k个最小ascii码值的字母(k>=1),输出该字母所在字符串的位置索引(字符串的第一个字符位置索引为0)。k如果大于字符串长度,则输出最大ascii值的字母所在字符串的位置索引,如果有重复的字母,则输出字母的最小位置索引。试题来源:华为 OD 联盟整理收集。原创 2023-03-13 20:35:25 · 866 阅读 · 0 评论 -
华为OD机试 -最低位排序(Java) | 机试题+算法思路+考点+代码解析 【2023】
比较器对象的实现方式为匿名内部类,重写了compare方法和getKey方法来确定排序规则。在compare方法中,使用getKey方法计算出每个数字的个位数,作为它们的排序依据。而在getKey方法中,则是根据输入的数字计算出其个位数,如果该数字为负数,则先取绝对值再计算。然后通过定义一个比较器对象,以每个数字的个位数为排序关键字进行排序。当数组元素为负值时,十进制最低为等同于去除符号位后对应十进制值最低位。给定一个非空数组(列表),起元素数据类型为整型,十进制最低位相同的元素,相对位置保持不变,原创 2023-03-13 20:32:43 · 332 阅读 · 0 评论 -
华为OD机试 -用连续自然数之和来表达整数(Java) | 机试题+算法思路+考点+代码解析 【2023】
整数 9 有三种表示方法,第1个表达式只有1个自然数,最先输出,第2个表达式有2个自然数,第2次序输出,第3个表达式有3个自然数,最后输出。其中用到的集合包括Scanner对象,使用while循环对x的迭代,以及for循环对每个可能的分解进行输出。在每个测试数据结束时,输出一行”Result:X”,其中X是最终的表达式个数。给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。1.读取用户从控制台输入的整数作为inputNum,如果inputNum不在1到1000之间,则输出结果为0。原创 2023-03-13 20:34:03 · 605 阅读 · 0 评论 -
华为OD机试 -找车位(Java) | 机试题+算法思路+考点+代码解析 【2023】
停车场有一横排车位,0代表没有停车,1代表有车。至少停了一辆车在车位上,也至少有一个空位没有停车。为了防剐蹭,需为停车人找到一个车位,使得距停车人的车最近的车辆的距离是最大的,返回此时的最大距离。原创 2023-03-13 20:31:40 · 482 阅读 · 0 评论 -
华为OD机试 -新工号系统(Java) | 机试题+算法思路+考点+代码解析 【2023】
3020年空间通信集团的员工突破20亿人,即将遇到现有工号不够的窘境。现在你负责调研新工号系统,继承历史传统新的工号系统由小写英文字母a-z和数字0-9两部分构成。新工号由一段英文字母开头。之后跟随一段数字,比如aaahw0001a12345abcd1a00注意:新工号不能全为字母或数字,允许数字部分有前导0或者全为0。但是过长的工号会增加同事们的记忆成本,现在给出新工号 至少需要分派的人数x和新工号中字母的长度y求新工号中数字的最短长度z。原创 2023-03-13 20:33:00 · 286 阅读 · 0 评论 -
华为OD机试 -找出符合要求的字符串子串(Java) | 机试题+算法思路+考点+代码解析 【2023】
整个程序主要使用了 Java 的集合框架中的 List 和 Collections 类,以及字符串的常见操作方法 contains、charAt、valueOf 等。同时还有异常捕获和处理的语法。从字符串2中找出字符串1的字符,去除重复的字符,并且按照ASCII值从小到大排序,得到输出的结果为abc。给定两个字符串,从字符串2中找出字符串1中的所有字符,去重并按照ASCII值从小到大排序。输入字符串1 为给定字符串bach,输入字符串2 bbaaccedfg。字符串1中的字符h在字符串2中找不到不输出。原创 2023-03-13 20:30:38 · 327 阅读 · 0 评论 -
华为OD机试 -新学校选址(Java) | 机试题+算法思路+考点+代码解析 【2023】
为了解新学期学生暴涨的问题,小乐村要建立所新学校考虑到学生上学安全问题,需要所有学生家到学校的距离最短.假设学校和所有学生家都走在一条直线之上,请问学校建立在什么位置,能使得到学校到各个学生家的距离和最短。原创 2023-03-13 20:30:03 · 335 阅读 · 0 评论 -
华为OD机试 -找字符(Java) | 机试题+算法思路+考点+代码解析 【2023】
给定两个字符串,从字符串2中找出字符串1中的所有字符,去重并按照ASCII码值从小到大排列。原创 2023-03-13 20:29:33 · 271 阅读 · 0 评论 -
华为OD机试 -数组二叉树(Java) | 机试题+算法思路+考点+代码解析 【2023】
输入的树最多为7层。二叉树也可以用数组来存储,给定一个数组,树的根节点的值存储在下标1,对于存储在下标N的节点,它的左子节点和右子节点分别存储在下标2N和2N+1,并且我们用值-1代表一个节点为空。数组存储的二叉树如图,故到最小叶子节点的路径为10 8 7 6,注意数组仅存储至最后一个非空节点,故不包含节点“7”右子节点的-1。输出从根节点到最小叶子节点的路径上,各个节点的值,由空格分隔,用例保证最小叶子节点只有一个。给定一个数组存储的二叉树,试求从根节点到最小的叶子节点的路径,路径由节点的值组成。原创 2023-03-13 20:28:51 · 321 阅读 · 0 评论 -
华为OD机试 -英文输入法(Java) | 机试题+算法思路+考点+代码解析 【2023】
主管期望你来实现英文输入法单词联想功能。需求如下:依据用户输入的单词前缀,从已输入的英文语句中联想出用户想输入的单词,按字典序输出联想到的单词序列,如果联想不到,请输出用户输入的单词前缀。注意:英文单词联想时,区分大小写缩略形式如”don’t”,判定为两个单词,”don”和”t”输出的单词序列,不能有重复单词,且只能是英文单词,不能有标点符号。原创 2023-03-13 20:27:54 · 570 阅读 · 0 评论 -
华为OD机试 -用户调度问题(Java) | 机试题+算法思路+考点+代码解析 【2023】
在通信系统中,一个常见的问题是对用户进行不同策略的调度,会得到不同的系统消耗和性能。假设当前有n个待串行调度用户,每个用户可以使用A/B/C三种不同的调度策略,不同的策略会消耗不同的系统资源。请你根据如下规则进行用户调度,并返回总的消耗资源数。原创 2023-03-13 20:29:13 · 394 阅读 · 1 评论 -
华为OD机试 -求最大数字(Java) | 机试题+算法思路+考点+代码解析 【2023】
给定一个由纯数字组成以字符串表示的数值,现要求字符串中的每个数字最多只能出现2次,超过的需要进行删除;删除某个重复的数字后,其它数字相对位置保持不变。如34533,数字3重复超过2次,需要删除其中一个3,删除第一个3后获得最大数值4533请返回经过删除操作后的最大的数值,以字符串表示。原创 2023-03-13 20:26:50 · 373 阅读 · 0 评论 -
华为OD机试 -一种字符串压缩表示的解压(Java) | 机试题+算法思路+考点+代码解析 【2023】
有一种简易压缩算法:针对全部由小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为连续个数加该字母,其他部分保持原样不变。例如:字符串“aaabbccccd”经过压缩成为字符串“3abb4cd”。请您编写解压函数,根据输入的字符串,判断其是否为合法压缩过的字符串,若输入合法则输出解压缩后的字符串,否则输出字符串“!error”来报告错误。原创 2023-03-13 20:26:19 · 401 阅读 · 0 评论 -
华为OD机试 -分奖金(Java) | 机试题+算法思路+考点+代码解析 【2023】
公司老板做了一笔大生意,想要给每位员工分配一些奖金,想通过游戏的方式来决定每个人分多少钱。按照员工的工号顺序,每个人随机抽取一个数字。按照工号的顺序往后排列,遇到第一个数字比自己数字大的,那么,前面的员工就可以获得距离 * 数字差值的奖金。如果遇不到比自己数字大的,就给自己分配随机数数量的奖金。例如:2103。那么第2个员工的数字10比第1个员工的数字2大,所以,第1个员工可以获得。第2个员工后面没有比他数字更大的员工,所以,他获得他分配的随机数数量的奖金,就是10。原创 2023-03-13 20:27:35 · 297 阅读 · 0 评论 -
华为OD机试 -寻找身高相近的小朋友(Java) | 机试题+算法思路+考点+代码解析 【2023】
小明今年升学到小学一年级,来到新班级后发现其他小朋友们身高参差不齐,然后就想基于各小朋友和自己的身高差对他们进行排序,请帮他实现排序。原创 2023-03-13 20:27:04 · 806 阅读 · 0 评论 -
华为OD机试 -数字加减游戏(Java) | 机试题+算法思路+考点+代码解析 【2023】
小明在玩一个数字加减游戏,只使用加法或者减法,将一个数字s变成数字t。每个回合,小明可以用当前的数字加上或减去一个数字。现在有两种数字可以用来加减,分别为a,b(a!=b),其中b没有使用次数限制。请问小明最少可以用多少次a,才能将数字s变成数字t。题目保证数字s一定能变成数字t。原创 2023-03-13 20:24:42 · 242 阅读 · 0 评论 -
华为OD机试 -子序列长度(Java) | 机试题+算法思路+考点+代码解析 【2023】
有N个正整数组成的一个序列给定一个整数sum求长度最长的的连续子序列使他们的和等于sum返回次子序列的长度如果没有满足要求的序列 返回-1。原创 2023-03-13 20:24:08 · 489 阅读 · 0 评论 -
华为OD机试 -寻找相同子串(Java) | 机试题+算法思路+考点+代码解析 【2023】
给你两个字符串 t 和 p ,要求从 t 中找到一个和 p 相同的连续子串,并输出该字串第一个字符的下标。原创 2023-03-13 20:23:36 · 444 阅读 · 0 评论 -
华为OD机试 -获取最大软件版本号(Java) | 机试题+算法思路+考点+代码解析 【2023】
Maven版本号定义,举例3.1.4-beta其中,主版本和次版本都是必须的,主版本,次版本,增量版本由多位数字组成,可能包含前导零,里程碑版本由字符串组成。:基于数字比较里程碑版本:基于字符串比较,采用字典序比较版本号时,按从左到右的顺序依次比较。基于数字比较, 只需比较忽略任何前导零后的整数值。输入2个版本号,输出最大版本号。原创 2023-03-13 20:22:59 · 396 阅读 · 0 评论 -
华为OD机试 -猜字谜(Java) | 机试题+算法思路+考点+代码解析 【2023】
2)字母去重以后是一样的,比如“woood”和“wood”是一样的,它们去重后都是“wod” 请你写一个程序帮忙在谜底库中找到正确的谜底。谜面是多个单词,都需要找到对应的谜底,如果找不到的话,返回"not found"小王设计了一个简单的猜字谜游戏,游戏的谜面是一个错误的单词,比如nesw,玩家需要猜出谜底库中正确的单词。1)变换顺序以后一样的,比如通过变换w和e的顺序,“nwes”跟“news”是可以完全对应的;匹配到的正确单词列表,以“,”分隔 如果找不到,返回"not found"原创 2023-03-13 20:21:18 · 629 阅读 · 0 评论 -
华为OD机试 -相对开音节(Java) | 机试题+算法思路+考点+代码解析 【2023】
相对开音节构成的结构为辅音+元音(aeiou)+辅音(r除外)+e,常见的单词有bike、cake等。给定一个字符串,以空格为分隔符,反转每个单词中的字母,若单词中包含如数字等其他非字母时不进行反转。反转后计算其中含有相对开音节结构的子串个数(连续的子串中部分字符可以重复)。原创 2023-03-13 20:20:05 · 370 阅读 · 0 评论