自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 华为OD机试算法目录题库-2

这个hr面的人会跟你了解期望薪资(但是没确定薪资),这是一个会打击你的面试因为hr会在这个阶段压薪,要自信,但是不能发脾气或者有叛逆的情绪(生气也要吞回去)。同一面,但是是其他部门的来面你,三个部分是一样的。(C卷,100分)- 提取字符串中的最长合法简单数学表达式(Java & JS & Python & C)(C卷,100分)- 求满足条件的最长子串的长度(Java & JS & Python & C)(C卷,100分)- 数的分解(Java & JS & Python & C & C++)

2024-06-24 10:53:48 458

原创 华为OD机试算法目录题库-1

(技术一面通常是你入职后同个大部门的华为正式员工面的,未来有可能遇到)。这个hr面的人会跟你了解期望薪资(但是没确定薪资),这是一个会打击你的面试因为hr会在这个阶段压薪,要自信,但是不能发脾气或者有叛逆的情绪(生气也要吞回去)。(D卷,100分)- 最长的指定瑕疵度的元音子串(Java & JS & Python & C)(D卷,200分)- 最长子字符串的长度(二)(Java & JS & Python & C)(C卷,200分)- 伐木工(Java & JS & Python & C & C++)

2024-06-24 10:52:08 498

原创 华为OD最新面试手撕代码:计数二进制子串

注意,一些重复出现的子串(不同位置)要统计它们出现的次数。重复出现(不同位置)的子串也要统计它们出现的次数。的非空(连续)子字符串的数量,并且这些子字符。个子串满足具有相同数量的连续。不是有效的子串,因为所有的。,统计并返回具有相同数量。,具有相同数量的连续。

2024-07-09 09:06:07 262

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

轴共同构成的容器可以容纳最多的水。找出其中的两条线,使得它们与。说明:你不能倾斜容器。

2024-07-03 11:32:17 309

原创 华为OD最新面试手撕代码:无重复字符的最长子串

分别表示当前最长不重复子串的起始位置和结束位置。,请你找出其中不含有重复字符的 最长子串的长度。,用于存储字符及其在字符串中的索引位置。指针的位置为当前重复字符的下一个位置。请注意,你的答案必须是 子串 的长度,中已经存在,并且其索引位置大于等于。更新当前最长不重复子串的长度,即为。,即为最长不重复子串的长度。因为无重复字符的最长子串是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。子串中是重复的,需要更新。是一个子序列,不是子串。,说明当前字符在当前的。

2024-07-03 11:29:21 237

原创 华为OD最新面试手撕代码:最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串。仅由小写英文字母组成。输入不存在公共前缀。

2024-07-01 11:07:45 259

原创 华为od最新面试手撕代码:消消乐游戏

输入中只含有大小写英文字母,存在其他符号时为异常输入,直接返回。此时没有相邻且相同的字符,无法继续消除。,只能包含大小写英文字母,字母的大小写敏感,输出游戏结束后,最终得到的字符串的长度。可以直接消除,得到空串,长度为。有一种游戏,输入原始字符串。

2024-07-01 11:03:25 383

原创 华为OD最新面试手撕代码:快乐数

对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。,也可能是 无限循环 但始终变不到。然后重复这个过程直到这个数变为。,那么这个数就是快乐数。编写一个算法来判断一个数。如果这个过程 结果为。

2024-06-28 11:06:16 164

原创 华为OD最新面试手撕代码:实现双向链表

在指定索引插入:遍历链表,找到指定索引位置的节点,将新节点插入到该位置。以上是实现双向链表的基本思路,通过合理的数据结构和算法实现,可以高效地对链表进行插入和删除操作。根据值删除:遍历链表,找到第一个值与给定值相等的节点,将该节点从链表中删除。显示操作:提供一个方法用于显示链表中的所有节点的数据,以便验证插入和删除操作是否正确。在头部插入:如果要在链表的头部插入节点,只需创建一个新节点,将其。类,表示链表中的节点。指向新节点,并将新节点设置为头节点即可。插入:指定索引插入,删除:根据值删除。

2024-06-28 11:00:05 261

原创 华为OD最新面试手撕代码:小于或等于n的素数的数量

【代码】华为OD最新面试手撕代码:小于或等于n的素数的数量。

2024-06-28 10:58:01 231

原创 华为OD最新面试手撕代码:翻转二叉树

翻转这棵二叉树,并返回其根节点。给你一棵二叉树的根节点。

2024-06-27 10:34:19 406

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

找到最长回文子串的一种常见方法是以每个字符为中心,向两边扩展,同时考虑奇数长度和偶数长度的回文子。对于偶数长度的回文子串,以当前字符和下一个字符的中间为中心,向左右两边扩展,直到左右字符不相等为。返回最长回文子串:最终得到的起始位置和结束位置即为最长回文子串的起始位置和结束位置,在原字符串中。以每个字符为中心:对于每个字符,分别考虑以该字符为中心的奇数长度和偶数长度的回文子串。对于奇数长度的回文子串,以当前字符为中心,向左右两边扩展,直到左右字符不相等为止。因为需要遍历每个字符,并且以每个字符为中。

2024-06-27 09:20:21 269

原创 华为OD最新面试算法:从标准输入读取整数n。

【代码】华为OD最新面试算法:从标准输入读取整数n。

2024-06-27 09:18:33 318

原创 华为OD最新面试手撕代码:背包问题

在这个问题中,给定一组物品,每个物品有对应的重量和价值,以及。你的实现基于递归的思路,通过穷举所有可能的选择来找到。不过,这个解决方案的效率可能不高,因为它会重复计算一些子问题,导致时间复杂度较高。如果你想要继续使用递归解决这个问题,可以尝试对递归函数进行记忆化搜索,以减少重复计算,提高效率。中,你使用了两个状态来表示每个物品的选择:选和不选。一个背包的容量,任务是找到能装入背包的物品的最大总价值。探索所有可能的选择,最终返回背包能够容纳的最大总价值。的指数级时间复杂度,是一种更有效的方法。

2024-06-26 09:43:14 384

原创 华为OD最新面试手撕代码:有效的括号

这段代码使用了栈来检查给定字符串是否表示有效的括号序列。最后,检查栈是否为空。如果栈为空,则表示所有括号都已匹配,返回。否则,弹出栈顶元素,检查是否与当前右括号匹配,若不匹配则返回。如果栈为空,则说明没有左括号与之匹配,直接返回。这样,我们就可以通过栈来检查括号序列的有效性。每个右括号都有一个对应的相同类型的左括号。,则需要检查栈顶元素是否与当前右括号匹配。左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。类型的栈对象来存储左括号。,判断字符串是否有效。

2024-06-26 09:41:04 209

原创 华为OD最新面试手撕代码:奥运会奖牌排名+芯片交易

然后接下来的N行,每行包含一个字符串Namei表示每个国家的名称,和三个整数Gi、Si、Bi表示每个获得的gold medal、silver medal、bronze medal的数量,以空格隔开,如(China 51 20 21),具体见样例输入。2:数组 prices 记录了某芯片近期的交易价格,其中 prices[i] 表示的 i 天该芯片的价格。你只能选择 某一天 买入芯片,并选择在 未来的某一个不同的日子 卖出该芯片。输出奖牌榜的依次顺序,只输出国家名称,各占一行,具体见样例输出。

2024-06-25 11:10:29 215

原创 华为OD最新面试手撕代码:判断字符串

这样,通过动态规划的方式,可以有效地判断字符串是否可以被成功分割。,表示整个字符串是否可以被成功分割成满足单词词典要求的单词序列。是否可以用空格分割成一个单词序列,使得单词序列中所有的单。可以被成功分割成满足单词词典要求的单词序列。串是否在单词词典中。如果满足这两个条件,将。中的单词(序列可以包含一个或多个单词)。,表示空字符串可以被成功分割。,表示从字符串的起始位置到第。备注:词典中的词可重复使用。注意,允许重复使用词典中。表示从字符串的起始位置到第。分割成词典中的单词序列。这个问题可以使用动态规划(

2024-06-25 09:58:04 336

原创 华为OD最新面试手撕代码:合并两个有序链表

两个链表的节点数目范围是 [0, 50] -100

2024-06-25 09:56:30 399

原创 华为OD最新面试手撕代码:括号生成

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

2024-06-24 14:22:08 534

原创 华为OD最新面试手撕代码:最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

2024-06-24 11:41:09 357

原创 华为OD最新面试手撕代码:删除回文子序列

给你一个字符串 s,它仅由字母 'a' 和 'b' 组成。每一次删除操作都可以从 s 中删除一个回文 子序列,返回删除给定字符串中所有字符(字符串为空)的最小删除次数。「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文。

2024-06-24 11:39:33 359

原创 华为OD最新面试手撕代码:最大子数组和

总之,这段代码的思路很清晰,通过动态规划的思想,避免了暴力枚举的时间复杂度过高的问题,使得程序的。遍历数组中的每个元素,对于每个元素,比较它和当前和加上它的大小,更新当前和。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回。通过动态规划的思想来解决最大连续子数组和的问题。前元素,则将当前和置为当前元素;每次更新当前和后,将其与最大和比较,取较大值作为新的最大和。遍历完整个数组后,最大和即为最大连续子数组的总和。,分别表示最大和与当前和。为整数的最小值,初始化。

2024-06-24 11:37:41 208

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

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

2024-06-24 11:35:53 380

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

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

2024-06-24 11:34:05 309

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

给定一个单词列表 words 和一个整数 k ,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率, 按字典顺序 排序。进阶:尝试以 O(n log k) 时间复杂度和 O(n) 空间复杂度解决。

2024-06-24 11:29:06 283

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

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

2024-06-24 11:16:31 215

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

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

2024-06-24 11:06:13 392

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

将小数位值转换为罗马数字有以下规则: 如果该值不是以 4 或 9 开头,请选择可以从输入中减去的最大值的符号,将该符号附加到结果,减去其值,然后将其余部分转换为罗马数字。如果该值以 4 或 9 开头,使用 减法形式,表示从以下符号中减去一个符号,例如 4 是 5 (V) 减 1 (I): IV ,9 是 10 (X) 减 1 (I):IX。仅使用以下减法形式:4 (IV),9 (IX),40 (XL),90 (XC),400 (CD) 和 900 (CM)。如果需要将符号附加4次,请使用 减法形式。

2024-06-24 11:02:31 333

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

碰撞规则:两个小行星相互碰撞,较小的小行星会爆炸。如果栈为空(没有可以碰撞的正向行星)或者栈顶行星是负数(已经碰撞过的负向行星),当前行星入。对于数组中的每一个元素,其绝对值表示小行星的大小,正负表示小行星的移动方向(正表示向右移。如果栈顶的行星大小小于当前负向行星的大小,则栈顶行星爆炸(出栈),继续判断新的栈顶行星。栈中的行星即为未发生碰撞的行星序列。如果行星是负数(向左移动),则需要与栈顶的正向运动行星进行碰撞判断。如果栈顶行星大小与当前行星大小相等,则两者都会爆炸,栈顶行星出栈。

2024-06-24 10:43:37 146

原创 华为OD最新面试手撕代码 :最大的子序列和

即当前元素与前一个元素结尾的最大子序列和相加,与当前元素单独作为子序列和进。为输入数组第一个元素的值,并将其作为全局最大子序列和的初始值。遍历结束后,判断全局最大子序列和是否为负数,如果是则返回。遍历输入数组,从第二个元素开始,计算。求该数据序列的最大子序列的和。首先判断输入数组是否为空或长度为。如果最大子序列和为负数,则返回。个元素结尾的最大子序列和。数组,长度与输入数组相同,在遍历过程中,通过不断更新。来记录全局最大子序列和。

2024-06-24 10:40:40 170

原创 华为OD面试最新手撕代码:质数的最大距离

当找到一个素数时,检查另一个指针所指向的元素是否也为素数,若是,则计算两者下标差(即数值。若遍历完整个数组仍未找到合适的素数对,说明数组中不存在满足条件的素数对,理论上此情况不会。返回值:数组中两个素数的最大差值,无素数则返回。出现于当前实现逻辑中,因为循环设计为无限循环。从数组起始位置向前寻找素数,另一个指针。因为只有一个质数,所以答案是。采用双指针策略,初始时一个指针。返回两个(不一定不同的)质数在。中 下标 的 最大距离。的数,因它们不是素数。的因子,则必有小于等于。差),更新最大差值。

2024-06-24 10:37:24 323

空空如也

空空如也

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

TA关注的人

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