自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

互关,互粉,互学。

互关,互粉,互学。

  • 博客(166)
  • 收藏
  • 关注

原创 华为od面试流程

所以建议在力扣刷题刷到熟练再考(100来道简单中等题,困难题随缘),因为如果靠运气通过的话,后面两轮技术面也是要做面试官出的算法题的。先来个自我介绍,技术一面主要有三部分,1、做一道算法题(力扣简单或者中等难度),大概给半小时时间,做完之后问你做题的思路。这个hr面的人会跟你了解期望薪资(但是没确定薪资),这是一个会打击你的面试因为hr会在这个阶段压薪,要自信,但是不能发脾气或者有叛逆的情绪(生气也要吞回去)。问加班意愿,家庭,对华为企业文化的认同、对企业的了解、未来的职业发展方向等等。

2024-03-14 16:31:58 430

原创 华为OD面试手撕代码:安排工作以达到最大收益

具体: 1、先把工作难度数组和工作收益数组合并为jobs 2、再对jobs进行升序排序,对工人数组也进行升序排序 3、While循环作用是找到能匹配工作难度的工人 4、如果没有能胜任的工人就直接退出 5、如果有胜任的工人j,为了能使获取到最大的收益所以,先把以前算的每个人的收益减掉后, 再加上当前最大的收益,就是最后的结果*/题目:安排工作以达到最大收益。

2024-06-17 10:29:05 423 1

原创 华为OD面试手撕代码:跳跃游戏|||

判断是否能到达目标位置。如果任意一个方向可以到达,则返回。、接下来记录当前位置的值,并将该位置标记为已访问(改成。、使用递归方式,分别从当前位置向前和向后进行跳跃,、首先判断当前位置是否越界或者已经被访问过。从给定的位置开始向前或者向后找,能不能。所有就从当前的位置开始递归向前向后找。,如果可以返回真,否则返回假。使用深度优先搜索算法实现。、然后判断当前位置的值是否为。只有向前向后任意一个遇到。如果都无法到达,并返回。

2024-06-13 09:30:03 367

原创 华为OD面试手撕代码:早餐组合

最后将下标位置返回,并累加就是组合的结果。排序可以帮助我们更有效地使用二分查找。这是因为在求解满足条件的组合数时,的最大索引位置,它的返回值是。,确保结果在取模后不会溢出,数组中的所有元素,然后再。

2024-06-13 09:24:08 465

原创 华为OD面试手撕代码:逆波兰表达式求值

则从栈中弹出两个操作数进行相应的运算,并将结果重新压入栈中。如果当前元素是数字(非运算符),则将其转换为整型并压入栈中。、最终栈中只会剩下一个元素,即为计算结果,将其弹出并返回。然后将计算结果再次入栈,直到整个表达式遍历完为止,遇到操作符时从栈中取出操作数进行相应的计算,最终栈中只会有一个元素,即为计算结果。总体思路就是利用栈来模拟计算过程,数组,依次处理每个元素。、创建一个整型类型的栈。题目:逆波兰表达式求值。如果当前元素是操作符(

2024-06-12 09:41:52 477 3

原创 华为OD面试手撕代码:找到最大周长的多边形

中可以构造的 多边形 的 最大周长。如果不能构造出任何多边形,请你返回。条边的封闭二维图形。多边形的 最长边 一定 小于 所有其他边长度之。中唯一可以构造的多边形为三角形,每条边的长度分别为。的多边形,因为其他边之和没法大于两者中的任何一个。解释:最大周长多边形为五边形,每条边的长度分别为。解释:无法构造任何多边形,因为多边形至少要有。一个多边形的 周长 指的是它所有边之和。条边的多边形,每条边的长度分别为。题目:找到最大周长的多边形。我们无法构造一个包含变长为。多边形 指的是一个至少有。

2024-06-12 09:39:04 166

原创 华为OD面试手撕代码:表达式加法和减法

小学一年级的时候做数学题很莫名奇妙,经常把算术表达式加上很多空格。是最后一个字符了,所以最后一个字符也可以进入到运算中。头大于是老师决定雇用你编写一个程序来独立计算。给你一个包含空格的字符串,请你计算出。输入输入只有一行,即一个长度不超过。中不一定包含运算符,且我们保证。),和下一次的数字,进行运算。思路:记录上次的符号(默认为。、先将每个数求出来,记录到。、记录下次的符号,并重置下。

2024-06-11 09:29:00 113

原创 华为OD面试手撕代码:Z字形变换

最后把字符串数组拼接到一起(成一个字符串)就是。步的时候,每次都把字符放到对应的字符串数组中。题目的含义就是让你把给定的字符串。、建立一个字符串的数组。,去保存每一行的字符。、当向下走的时候每次给。、当到最底下的时候给。

2024-06-11 09:25:51 160

原创 华为OD面试手撕代码:整数转罗马数字

罗马数字是通过添加从最高到最低的小数位值的转换而形成的。将小数位值转换为罗马数字有以下规。开头,请选择可以从输入中减去的最大值的符号,将该符号附加到结果,减去其。开头,使用 减法形式,表示从以下符号中减去一个符号,例如。数组中的每个数值,对于每个数值,如果当前数值不小于。值,然后将其余部分转换为罗马数字。给定一个整数,将其转换为罗马数字。,分别存储罗马数字的数值和符号。用于存储转换后的罗马数字。对象的字符串形式作为结果。次,请使用 减法形式。因为转换是基于小数位。

2024-06-07 16:14:34 99

原创 华为OD面试手撕代码:子数组按位或操作

返回可能结果的数量。多次出现的结果在最终答案中仅计算一次。对于每个(连续的)子数组。有三个唯一值,所以答案是。我们有一个非负整数数组。

2024-06-07 09:33:27 249

原创 华为OD面试手撕代码:删除有序数组中的重复项

删除重复出现的元素,使得出现次数超过两次的元素。不要使用额外的数组空间,你必须在。,返回删除后数组的新长度。额外空间的条件下完成。

2024-06-07 09:30:36 193

原创 华为OD面试手撕代码:产生由1,2,3这3个数字符号所构成、长度为n的字符串

无相邻重复子串的所有字符串,每个字符串换行输出。串而言,都不会有相邻的、完全相同的子串;的字符串,并且在字符串中对于任何一个子。个数字符号所构成、长度为。

2024-06-06 09:19:05 295

原创 华为OD面试手撕代码:用户分组

每个人应该 恰好只 出现在 一个组 中,并且每个人必须在一个组中。如果有多个答案,返回其中 任何。这个题的意思就是:把数组中的每个元素都按照元素的值分到不同的组中。可以 保证 给定输入 至少有一个 有效的解。个人被分成数量未知的组。每个人都被标记为一个从。因为到这里分组满了 所以分组有一个。个人所在的组的大小。返回一个组列表,使每个人。然后把下表放入数组中返回。分组满了,所以有一个分组。其他可能的解决方案有。

2024-06-06 09:16:00 836

原创 华为OD面试手撕代码:OJ红绿砖

因为校方的目的是:每一块红色的方砖都至少在绿色方砖的左边(也就是每一个红的左边不能有绿的),如果不满足要求,则将该红色方砖重新喷涂为绿色方砖,并将。根据题目描述,我们需要计算重新喷涂的方砖的最少数量。在广场上有一排方砖是有颜色的,被涂上红色或者绿色,从左到右排列。砖都至少在绿色方砖的左边,我们可以采用贪心算法的思路来解决。),则判断该红色方砖是否满足要求,即其左边没有绿色方砖(用于记录重新喷涂的方砖的次数,初始值为。输出需要重新喷涂的方砖的最少数量。的值,即重新喷涂的方砖的最少数量。

2024-06-05 09:25:40 339

原创 华为OD面试手撕代码:. 小岛问题(翻转矩阵)

同时相邻的上、下、左、右,以及左上、左下、右上、右下。列的二维矩阵,矩阵中每个位置的数字取值为。按照上述规则示例中的矩阵只最少需要点击。请问,给定一个矩阵,最少需要点击几。输出一个整数,表示最少需要点击的次数。个方向上,因此点击一次即可。)进一步地,一个位置上的。现需要将矩阵中所有的。

2024-06-05 09:21:57 304

原创 华为OD面试手撕代码: 一亿以内的素数

题目描述Wite。

2024-06-04 10:45:47 243 1

原创 华为OD面试手撕代码:下一个更大元素

的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应。该循环地搜索它的下一个更大的数。的下一个最大的数需要循环搜索,结果也是。中每个元素的 下一个更大元素。找不到下一个更大的数;

2024-06-04 09:49:26 164

原创 华为OD面试手撕代码:盛最多水的容器

在此情况下,容器能够容纳水(表示为蓝色。轴共同构成的容器可以容纳最多的水。找出其中的两条线,使得它们与。返回容器可以储存的最大水量。解释:图中垂直线代表输入数组。说明:你不能倾斜容器。

2024-06-04 09:44:50 227

原创 华为OD最新面试手撕代码:行星碰撞

3、找出碰撞后身下的所有行星。碰撞规则:两个行星相互碰撞,较小的行星会爆炸。如果两颗行星大小相 同,则两颗行星都会爆炸。两颗移动方向相同的行星,永远不会发生碰撞。2、对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向左移动,负表 示向右移动)。每一颗行星以相同的速度移动。进行碰撞后,全部行星都爆炸了。面试官对原题做了修改,请注意对比不同。表示在同一行的行星。1、给定一个整数数组。

2024-06-03 10:06:37 312

原创 华为OD最新面试手撕代码:编辑距离

给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数。你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符。

2024-06-03 09:15:44 473

原创 华为OD最新面试手撕代码:组合总和

递归调用返回后,我们需要回溯,即将当前添加的元素移除,以尝试其他可能的组合。最终返回所有找到的组合。回溯算法是一种通过不断尝试可能的解决方案来解决问题的方法。在回溯函数中,我们首先检查是否达到了目标值,如果是,则将当前组合添加到结果列表中。定义一个回溯函数,该函数接收当前的组合、当前的索引以及剩余的目标值作为参数。的 所有 不同组合 ,并以列表形式返回。数组进行排序,这样可以在后续的递归过程中方便地剪枝。数组,对于每个元素,我们都尝试将其添加到当前组合中,并递归调用回溯函数以寻找下一个可能的组合。

2024-06-03 09:13:05 146

原创 华为OD面试手撕代码:仅执行一次字符串交换能否使两个字符串相等

如果对 其中一个字符串 执行 最多一次字符串交换 就可以使两个字符串相等,返回。一次 字符串交换 操作的步骤如下:选出某个字符串中的两个。解释:两个字符串已经相等,所以不需要进行字符串交换。下标(不必不同),并交换这两个下标所对应的字符。解释:一次字符串交换无法使两个字符串相等。中的第一个和最后一个字符可以得到。给你长度相等的两个字符串。仅由小写英文字母组成。

2024-05-31 15:44:23 160

原创 华为OD面试最新手撕代码:前K个高频单词

返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率, 按字典顺序 排序。创建一个优先队列(最小堆),按照单词出现的次数排序,如果出现次数相同,则按照字母顺序排序。中的单词及其出现次数映射,将单词添加到最小堆中,保持堆的大小为。创建一个结果列表,按相反顺序从最小堆中取出前。是出现次数最多的四个单词,出现次数依次为。遍历单词列表,统计每个单词的出现次数,更新。个出现次数最多的单词,添加到结果列表中。为出现次数最多的两个单词,均为。来存储单词及其出现的次数。个出现次数最多的单词。

2024-05-31 09:12:38 487

原创 【华为OD机试算法】剩余银饰的重量

选出 3 7 10,需要计算 (7-3) 和 (10-7) 的差值,即(7-3)-(10-7)=1,所以数组转换为 [1],剩余一块,返回该块重量,返回1。有 N 块二手市场收集的银饰,每块银饰的重量都是正整数,收集到的银饰会被熔化用于打造新的饰品。如果 x == y 且 y!= y 且 y == z,会剩余重量为 y - x 的银块无法被熔掉;根据题目描述的规则,计算每次熔掉后剩余的银块重量,并将剩余的银块重新放入数组中。第二行为n块银饰的重量,重量的取值范围为[1,2000],重量之间使用空格隔开。

2024-05-29 10:08:31 161

原创 华为OD机试算法:出错的或电路

某生产门电路的厂商发现某一批次的或门电路不稳定,具体现象为计算两个二进制数的或操作时,第一个二进制数中某两个比特位会出现交换,交换的比特位置是随机的,但只交换这两个位,其他位不变。为了评估影响和定位出错的根因,工程师需要研究在各种交换的可能下,最终的或结果发生改变的情况有多少种。第二行有一个长为N的二进制数,表示与电路的第一个输入数,即会发生比特交换的输入数。对于每个可以交换的比特位,我们将其与第二个输入数进行或操作,判断结果是否改变。如果结果改变,说明这种交换会影响最终的或结果,将计数器加一。

2024-05-29 10:03:20 38

原创 华为OD机试算法:猜密码

可能的密码组合,每种组合显示成一行,每个组合内部的数字以半角逗号分隔,从小到大的顺序排列。输出的密码数字要按照从小到大的顺序排列,密码组合需要按照字母顺序,从小到大的顺序排序。请你根据他记住的数字范围和密码的最小数字数量,帮他算下有哪些可能的组合,对于每个生成的组合,按照从小到大的顺序排序,并将组合转换为字符串格式。可能的密码组合,一个的有两种: 0 2 两个的有一个: 0,2。输出的每一个组合的数字的数量要大于等于密码最小数字数量;输出的组合都是从可选的数字范围中选取的,且不能重复;

2024-05-29 10:01:08 59

原创 华为OD机试算法:比较两个版本号的大小

如果所有位置上的子版本号都相等,则返回0。输入两个版本号 version1 和 version2,每个版本号由多个子版本号组成。在比较子版本号时,需要先处理子版本号前面的0,然后根据题目给定的比较规则进行比较。子版本号之间由 “.” 隔开,由大小写字母、数字组成,并且至少有一个字符。首先,将输入的两个版本号字符串按照"."进行分割,得到两个子版本号列表。子版本号前面的0不参与比较,比如 001 和 1 是相等的。然后,遍历两个子版本号列表,逐个比较每个子版本号的大小。第一行输入version1。

2024-05-29 09:52:28 55

原创 【华为OD机试算法】最多购买宝石数目

gems = [1, 1, 1, 1, 1, 1, 1, 1, 1], value = 10 最多购买的宝石为gems[0]至gems[8],即全部购买。gems = [8,4,6,3,1,6,7], value = 10最多购买的宝石为gems[2]至gems[4]或者gems[3]至gems[5]gems = [6, 1, 3, 1, 8, 9, 3, 2, 4], value = 15 最多购买的宝石为gems[0]至gems[3]输出int类型的返回值,表示最大可购买的宝石数量。

2024-05-29 09:24:30 119

原创 华为OD机试算法:最大时间

给定一个数组,里面有 6 个整数,求这个数组能够表示的最大 24 进制的时间是多少,输出这个时间,无法表示输出 invalid。如果找到一个满足条件的时间组合,将其转换为 24 进制格式并输出。然后,遍历所有可能的时间组合,对于每个时间组合,判断是否满足 24 进制时间的要求。输入整数数组长度为 6,不需要考虑其它长度,元素值为 0 或者正整数,6 个数字每个数字只能使用一次。输出为一个 24 进制格式的时间,或者字符串”invalid“。首先,将输入的整数数组按照从小到大的顺序排序。

2024-05-29 09:21:05 200

原创 华为OD机试算法:最大括号深度

如果字符串有效,使用一个栈来记录括号的嵌套深度。遍历字符串,遇到左括号时,将其压入栈中;遇到右括号时,弹出栈顶元素,更新最大嵌套深度。首先,遍历字符串,检查是否存在无效的情况。现有一字符串仅由 ‘(‘,’)’,'{‘,’}’,'[‘,’]’六种括号组成。一个只包括 ‘(‘,’)’,'{‘,’}’,'[‘,’]’的字符串。输出括号的最大嵌套深度,若字符串无效则输出0。无效字符串,有两种类型的左右括号数量不相等。无效字符串,存在未按正确顺序闭合的括号。无效字符串,存在未按正确顺序闭合的括号。

2024-05-26 14:33:37 201

原创 华为OD机试算法:最大N个数与最小N个数的和

给定一个数组,编写一个函数来计算它的最大N个数与最小N个数的和。最大2个数[100,95],最小2个数[83,64], 输出为342。最大2个数[4,3],最小2个数[3,2], 有重叠输出为-1。判断最大N个数与最小N个数是否有重叠,如果有重叠则返回-1。第三行输入N,N表达需要计算的最大、最小N个数。最大N个数与最小N个数不能有重叠,如有。首先,读取输入的数组大小M和数组内容。计算最大N个数与最小N个数的和。输出最大N个数与最小N个数的和。输出最大N个数与最小N个数的和。然后,对数组进行去重操作。

2024-05-26 14:18:34 122

原创 华为OD机试算法:转盘寿司

如果客户选择了第 i 盘寿司,寿司店免费赠送客户距离第 i 盘寿司最近的下一盘寿司 j,前提是 prices[j] < prices[i],如果没有满足条件的 j,则不赠送寿司。然后,遍历prices列表,对于每个元素i,找到满足条件的最近的下一盘寿司j(即prices[j] < prices[i]),并将j的价格加到i上,得到实际得到的寿司的总价格。首先,根据输入的寿司价格列表,创建一个列表prices,用于存储每盘寿司的价格。寿司转盘上总共有 n 盘寿司,prices[i] 是第 i 盘寿司的价格,

2024-05-26 13:50:36 106

原创 华为OD机试算法: 执行时长

遍历任务数组,对于每个任务,执行以下操作: a. 如果当前秒的任务数量小于等于n,那么将当前秒的任务数量累加到completed_tasks上,并将completed_tasks除以n向下取整得到已执行的秒数。如果当前秒的任务数量大于n,那么将当前秒的任务数量减去n,然后将剩余任务数量累加到已完成任务总数上,并将已完成任务总数除以n向下取整得到已执行的秒数。如果当前秒的任务数量小于等于n,那么直接将当前秒的任务数量累加到已完成任务总数上,并将已完成任务总数除以n向下取整得到已执行的秒数。

2024-05-26 13:36:23 128

原创 【华为OD机试算法】整型数组按个位值排序

给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。使用稳定的排序算法(例如冒泡排序、插入排序等)对数组进行排序,排序规则为按照元素的十进制最低位从小到大排序。定义一个函数sort_by_least_significant_digit,接收一个参数:数组nums。在函数内部,使用冒泡排序算法对数组nums进行排序,排序规则为按照元素的十进制最低位从小到大排序。返回排序后的数组nums作为结果。将输入的数组存储在相应的变量中。

2024-05-26 13:25:29 112

原创 华为OD面试手撕代码:被围绕的区域

给你一个 m x n 的矩阵 board ,由若干字符 'X' 和 'O' ,找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。

2024-05-26 12:30:28 302

原创 华为OD面试流程

所以建议在刷题刷到熟练再考(100来道简单中等题,困难题随缘),因为如果靠运气通过的话,后面两轮技术面也是要做面试官出的。这个hr面的人会跟你了解期望薪资(但是没确定薪资),这是一个会打击你的面试因为hr会在这个阶段压薪,要自信,但是不能发脾气或者有叛逆的情绪(生气也要吞回去)。技术一面主要有三部分,1、做一道(力扣简单或者中等难度),大概给半小时时间,做完之后问你做题的思路。问加班意愿,家庭,对华为企业文化的认同、对企业的了解、未来的职业发展方向等等。同一面,但是是其他部门的来面你,三个部分是一样的。

2024-05-26 12:25:29 1289

原创 华为OD机试算法:亲子游戏

否则,将该位置加入队列中,并更新该位置的糖果数量。宝宝和妈妈参加亲子游戏,在一个二维矩阵(N*N)的格子地图上,宝宝和妈妈抽签决定各自的位置,地图上每个格子有不同的糖果数量,部分格子有障碍物。游戏规则是妈妈必须在最短的时间(每个单位时间只能走一步)到达宝宝的位置,路上的所有糖果都可以拿走,不能走障碍物的格子,只能上下左右走。请问妈妈在最短到达宝宝位置的时间内最多拿到多少糖果(优先考虑最短时间到达的情况下尽可能多拿糖果)。输出妈妈在最短到达宝宝位置的时间内最多拿到多少糖果,行末无多余空格。

2024-05-23 14:21:05 1471

原创 华为OD机试算法:数组二叉树

然后,从根节点开始,根据数组下标关系,找到最小叶子节点的路径。具体方法是,从根节点开始,每次将当前节点的下标乘以2和2*N+1,分别表示左子节点和右子节点的下标。二叉树也可以用数组来存储,给定一个数组,树的根节点的值存储在下标1,对于存储在下标N的节点,它的左子节点和右子节点分别存储在下标2*N和2*N+1,并且我们用值-1代表一个节点为空。输出从根节点到最小叶子节点的路径上,各个节点的值,由空格分隔,用例保证最小叶子节点只有一个。最后,输出从根节点到最小叶子节点的路径上的各个节点的值。

2024-05-23 14:10:32 38

原创 华为OD手撕代码:最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字。"aba" 同样是符合题意的答案。

2024-05-23 09:29:08 77

原创 华为OD机试算法:运输时间

题目描述M(1 ≤ M ≤ 20)辆车需要在一条不能超车的单行道到达终点,起点到终点的距离为 N(1 ≤ N ≤ 400)。速度快的车追上前车后,只能以前车的速度继续行驶,求最后一辆车到达目的地花费的时间。注:每辆车固定间隔 1 小时出发,比如第一辆车 0 时出发,第二辆车 1 时出发,依次类推。

2024-05-22 09:56:53 267

SpringCloud篇.md

SpringCloud篇

2024-06-13

MySQL篇.md

MySQL篇

2024-06-13

多线程笔记.md

多线程笔记

2024-06-13

软件测试流程和测试方法

软件测试流程和测试方法

2024-06-13

Java面试宝典9.0.pdf

Java面试宝典9.0

2024-06-13

前端js基础学习实践,面试重点

前端js基础学习实践,面试重点

2024-06-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除