飞码创造者
任职于不知名互联网大厂,技术经理,提供面试、后端、源代码、体系结构、算法等方面的指导交流。
展开
-
华为OD机试C卷-- 最长子字符串的长度(二)(Java & JS & Python & C)
给你一个字符串 s,字符串 s 首尾相连成一个环形,请你在环中找出 'l'、'o'、'x' 字符都恰好出现了偶数次最长子字符串的长度。原创 2024-06-08 02:31:29 · 7469 阅读 · 3 评论 -
华为OD机试C卷-- 最小矩阵宽度(Java & JS & Python & C)
给定一个矩阵,包含 N * M 个整数,和一个包含 K 个整数的数组。现在要求在这个矩阵中找一个宽度最小的子矩阵,要求子矩阵包含数组中所有的整数。原创 2024-06-08 02:26:36 · 7850 阅读 · 2 评论 -
华为OD机试C卷-- 最小传输时延Ⅱ(Java & JS & Python)
有M*N的节点矩阵,每个节点可以向8个方向(上、下、左、右及四个斜线方向)转发数据包,每个节点转发时会消耗固定时延,连续两个相同时延可以减少一个时延值(即当有K个相同时延的节点连续转发时可以减少K- 1个时延值),求左上角(0,0)开始转发数据包到右下角(M-1,N- 1)并转发出的最短时延。原创 2024-06-08 02:20:40 · 7340 阅读 · 1 评论 -
华为OD机试C卷-- 最大社交距离(Java & JS & Python & C)
疫情期间需要大家保证一定的社交距离,公司组织开交流会议。座位一排共 N 个座位,编号分别为 [0, N - 1] 。要求员工一个接着一个进入会议室,并且可以在任何时候离开会议室。原创 2024-06-08 02:18:13 · 7531 阅读 · 3 评论 -
华为OD机试C卷-- 字符串拼接(Java & JS & Python & C)
给定 M(0 < M ≤ 30)个字符(a-z),从中取出任意字符(每个字符只能用一次)拼接成长度为 N(0 < N ≤ 5)的字符串,要求相同的字符不能相邻,计算出给定的字符列表能拼接出多少种满足条件的字符串,输入非法或者无法拼接出满足条件的字符串则返回0。原创 2024-06-08 02:12:02 · 7687 阅读 · 1 评论 -
华为OD机试C卷-- 字符串比较(Java & JS & Python)
给定字符串A、B和正整数V,A的长度与B的长度相等, 请计算A中满足如下条件的最大连续子串的长度: - 该连续子串在A和B中的位置和长度均相同。 - 该连续子串|A[i] – B[i]|之和小于等于V。其中|A[i] – B[i]|表示两个字母ASCII码之差的绝对值。原创 2024-06-07 19:09:54 · 7571 阅读 · 1 评论 -
华为OD机试C卷-- 转骰子(Java & JS & Python)
骰子是一个立方体,每个面一个数字,初始为左1,右2,前3(观察者方向),后4,上5,下6,用123456表示这个状态,放置在平面上,可以向左翻转(用L表示向左翻转1次),可以向右翻转(用R表示向右翻转1次),可以向前翻转(用F表示向前翻转1次),可以向后翻转(用B表示向后翻转1次),可以逆时针旋转(用A表示逆时针旋转90度),可以顺时针旋转(用C表示顺时针旋转90度),现从123456这个初始状态开始,根据输入的动作序列,计算得到最终的状态。原创 2024-06-07 19:06:34 · 7439 阅读 · 1 评论 -
华为OD机试C卷-- 中文分词模拟器(Java & JS & Python & C)
给定一个连续不包含空格的字符串,该字符串仅包含英文小写字母及英文标点符号(逗号、分号、句号),同时给定词库,对该字符串进行精确分词。**说明:** 1. 精确分词:字符串分词后,不会出现重叠。即"ilovechina",不同词库可分割为"i,love,china","ilove,china",不能分割出现重叠的"i,ilove,china",i 出现重叠 2. 标点符号不成词,仅用于断句 3. 词库:根据外部知识库统计出来的常用词汇例:dictionary = ["i", "love", "ch原创 2024-06-07 18:47:48 · 6992 阅读 · 0 评论 -
华为OD机试C卷-- 智能驾驶(Java & JS & Python & C)
有一辆汽车需要从 m * n 的地图左上角(起点)开往地图的右下角(终点),去往每一个地区都需要消耗一定的油量,加油站可进行加油。请你计算汽车确保从从起点到达终点时所需的最少初始油量。原创 2024-06-07 18:41:22 · 7326 阅读 · 2 评论 -
华为OD机试C卷-- 找数字(Java & JS & Python & C)
小扇和小船今天又玩起来了数字游戏,小船给小扇一个正整数 n(1 ≤ n ≤ 1e9),小扇需要找到一个比 n 大的数字 m,使得 m 和 n 对应的二进制中 1 的个数要相同,如:原创 2024-06-07 18:36:58 · 8231 阅读 · 2 评论 -
华为OD机试C卷-- 找到比自己强的人数(Java & JS & Python)
给定数组[[2,1],[3 2]],每组表示师徒关系,第一个元素是第二个元素的老师,数字代表排名,现在找出比自己强的徒弟。原创 2024-06-05 18:38:05 · 3915 阅读 · 2 评论 -
华为OD机试C卷-- 找单词(Java & JS & Python)
给一个字符串和一个二维字符数组,如果该字符串存在于该数组中,则按字符串的字符顺序输出字符串每个字符所在单元格的位置下标字符串,如果找不到返回字符串“N”。1.需要按照字符串的字符组成顺序搜索,且搜索到的位置必须是相邻单元格,其中“相邻单元格”是指那些水平相邻或垂直相邻的单元格。2.同一个单元格内的字母不允许被重复使用。3.假定在数组中最多只存在一个可能的匹配。原创 2024-06-05 18:32:55 · 3822 阅读 · 0 评论 -
华为OD机试C卷-- 找城市(Java & JS & Python & C)
一张地图上有n个城市,城市和城市之间有且只有一条道路相连:要么直接相连,要么通过其它城市中转相连(可中转一次或多次)。城市与城市之间的道路都不会成环。当切断通往某个城市 i 的所有道路后,地图上将分为多个连通的城市群,设该城市i的聚集度为DPi(Degree of Polymerization),DPi = max(城市群1的城市个数,城市群2的城市个数,…城市群m 的城市个数)。请找出地图上DP值最小的城市(即找到城市j,使得DPj = min(DP1,DP2 … DPn))提示:如果有多个城原创 2024-06-05 18:30:17 · 4031 阅读 · 2 评论 -
华为OD机试C卷-- 运输时间(Java & JS & Python & C)
M(1 ≤ M ≤ 20)辆车需要在一条不能超车的单行道到达终点,起点到终点的距离为 N(1 ≤ N ≤ 400)。速度快的车追上前车后,只能以前车的速度继续行驶,求最后一辆车到达目的地花费的时间。注:每辆车固定间隔 1 小时出发,比如第一辆车 0 时出发,第二辆车 1 时出发,依次类推原创 2024-06-05 18:24:06 · 4032 阅读 · 2 评论 -
华为OD机试C卷-- 图像物体的边界(Java & JS & Python)
给定一个二维数组M行N列,二维数组里的数字代表图片的像素,为了简化问题,仅包含像素1和5两种像素,每种像素代表一个物体,2个物体相邻的格子为边界,求像素1代表的物体的边界个数。像素1代表的物体的边界指与像素5相邻的像素1的格子,边界相邻的属于同一个边界,相邻需要考虑8个方向(上,下,左,右,左上,左下,右上,右下)。原创 2024-06-05 18:16:19 · 3724 阅读 · 0 评论 -
华为OD机试C卷-- 员工派遣(Java & JS & Python & C)
某公司部门需要派遣员工去国外做项目。现在,代号为 x 的国家和代号为 y 的国家分别需要 cntx 名和 cnty 名员工。部门每个员工有一个员工号(1,2,3,......),工号连续,从1开始。部长派遣员工的规则: - 规则1:从 [1, k] 中选择员工派遣出去 - 规则2:编号为 x 的倍数的员工不能去 x 国,编号为 y 的倍数的员工不能去 y 国。原创 2024-06-05 18:15:16 · 3736 阅读 · 0 评论 -
华为OD机试C卷-- 园区参观路径(Java & JS & Python & C)
园区某部门举办了Family Day,邀请员工及其家属参加;将公司园区视为一个矩形,起始园区设置在左上角,终点园区设置在右下角;家属参观园区时,只能向右和向下园区前进,求从起始园区到终点园区会有多少条不同的参观路径。原创 2024-06-05 18:10:19 · 4076 阅读 · 1 评论 -
华为OD机试C卷-- 寻找最优的路测线路(Java & JS & Python & C)
评估一个网络的信号质量,其中一个做法是将网络划分为栅格,然后对每个栅格的信号质量计算。路测的时候,希望选择一条信号最好的路线(彼此相连的栅格集合)进行演示。现给出 R 行 C 列的整数数组 Cov,每个单元格的数值 S 即为该栅格的信号质量(已归一化,无单位,值越大信号越好)。要求从 [0, 0] 到 [R-1, C-1]设计一条最优路测路线。返回该路线得分。原创 2024-06-05 18:04:26 · 4119 阅读 · 1 评论 -
华为OD机试C卷-- 信道分配(Java & JS & Python & C)
算法工程师小明面对着这样一个问题 ,需要将通信用的信道分配给尽量多的用户:信道的条件及分配规则如下: - 所有信道都有属性:”阶”。阶为 r的信道的容量为 2^r比特; - 所有用户需要传输的数据量都一样:D比特; - 一个用户可以分配多个信道,但每个信道只能分配给一个用户; - 只有当分配给一个用户的所有信道的容量和>=D,用户才能传输数据; 给出一组信道资源,最多可以为多少用户传输数据?原创 2024-06-05 18:01:04 · 4334 阅读 · 2 评论 -
华为OD机试C卷--小朋友分组最少调整次数(Java & JS & Python & C)
n 个学生排成一排,学生编号分别是 1 到 n,n 为 3 的整倍数。老师随机抽签决定将所有学生分成 m 个 3 人的小组(n == 3 * m) ,为了便于同组学生交流,老师决定将小组成员安排到一起,也就是同组成员彼此相连,同组任意两个成员之间无其它组的成员。因此老师决定调整队伍,老师每次可以调整任何一名学生到队伍的任意位置,计为调整了一次, 请计算最少调整多少次可以达到目标。注意:对于小组之间没有顺序要求,同组学生之间没有顺序要求。原创 2024-06-05 17:56:12 · 5407 阅读 · 0 评论 -
华为OD机试C卷-- 项目排期(Java & JS & Python & C)
项目组共有 N 个开发人员,项目经理接到了 M 个独立的需求,每个需求的工作量不同,且每个需求只能由一个开发人员独立完成,不能多人合作。假定各个需求直接无任何先后依赖关系,请设计算法帮助项目经理进行工作安排,使整个项目能用最少的时间交付。原创 2024-06-05 17:53:33 · 4250 阅读 · 1 评论 -
华为OD机试C卷-- 污染水域(Java & JS & Python & C)
输入一行字符串,字符串可转换为N*N的数组,数组可认为是一个水域,判断多少天后,水域被全部污染。数组中只有0和1,0表示纯净,1表示污染,每天只可污染上下左右的水域,如果开始全部被污染,或永远无法污染,则返回-1。原创 2024-06-05 17:47:50 · 4124 阅读 · 0 评论 -
华为OD机试C卷-- 文件缓存系统(Java & JS & Python)
请设计一个文件缓存系统,该文件缓存系统可以指定缓存的最大值(单位为字节)。文件缓存系统有两种操作: - 存储文件(put) - 读取文件(get) 操作命令为: - put fileName fileSize - get fileName 存储文件是把文件放入文件缓存系统中;读取文件是从文件缓存系统中访问已存在,如果文件不存在,则不作任何操作。当缓存空间不足以存放新的文件时,根据规则删除文件,直到剩余空间满足新的文件大小位置,再存放新文件。具体的删除规则为:>文件访问过后原创 2024-06-05 17:45:42 · 3970 阅读 · 0 评论 -
华为OD机试C卷-- 文本统计分析(Java & JS & Python)
有一个文件,包含以一定规则写作的文本,请统计文件中包含的文本数量。规则如下:1. 文本以”;”分隔,最后一条可以没有”;”,但空文本不能算语句,比如”COMMAND A; ;”只能算一条语句。注意,无字符/空白字符/制表符都算作”空”文本;2. 文本可以跨行,比如下面,是一条文本,而不是三条;原创 2024-06-05 17:41:00 · 4089 阅读 · 0 评论 -
华为OD机试C卷-- 推荐多样性(Java & JS & Python & C)
推荐多样性需要从多个列表中选择元素,一次性要返回 N 屏数据(窗口数量),每屏展示 K 个元素(窗口大小),选择策略:1.各个列表元素需要做穿插处理,即先从第一个列表中为每屏选择一个元素,再从第二个列表中为每屏选择一个元素,依次类推2.每个列表的元素尽量均分为 N 份,如果不够 N 个,也要全部分配完,参考样例图:(1)从第一个列表中选择 4 条 0 1 2 3,分别放到 4 个窗口中(2)从第二个列表中选择 4 条 10 11 12 13,分别放到 4 个窗口中(3)从第三个列表中选择原创 2024-06-05 17:37:35 · 4277 阅读 · 1 评论 -
华为OD机试C卷-- 跳马(Java & JS & Python & C)
马是象棋(包括中国象棋和国际象棋)中的棋子,走法是每步直一格再斜一格,即先横着或者直者走一格,然后再斜着走一个对角线,可进可退,可越过河界,俗称"马走日"字。给定 m 行 n 列的棋盘(网格图),棋盘上只有棋子象棋中的棋子“马”,并且每个棋子有等级之分,等级为 k 的马可以跳 1~k 步(走的方式与象棋中“马”的规则一样,不可以超出棋盘位置),问是否能将所有马跳到同一位置,如果存在,输出最少需要的总步数(每匹马的步数相加),不存在则输出-1。注:允许不同的马在跳的过程中跳到同一位置,坐标为(x,y)原创 2024-06-03 17:43:09 · 4286 阅读 · 1 评论 -
华为OD机试C卷-- 跳格子3(Java & JS & Python & C)
小明和朋友们一起玩跳格子游戏,每个格子上有特定的分数 score = [1, -1, -6, 7, -17, 7],从起点score[0]开始,每次最大的步长为k,请你返回小明跳到终点 score[n-1] 时,能得到的最大得分。原创 2024-06-03 17:36:01 · 4327 阅读 · 0 评论 -
华为OD机试C卷-- 田忌赛马(Java & JS & Python & C)
给定两个只包含数字的数组a,b,调整数组 a 里面的数字的顺序,使得尽可能多的a[i] > b[i]。数组a和b中的数字各不相同。输出所有可以达到最优结果的a数组的结果。原创 2024-06-03 17:33:08 · 4565 阅读 · 1 评论 -
华为OD机试C卷-- 特殊的加密算法(Java & JS & Python & C)
有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。**规则如下:** - 明文为一段数字串由 0~9 组成 - 密码本为数字 0~9 组成的二维数组 - 需要按明文串的数字顺序在密码本里找到同样的数字串,密码本里的数字串是由相邻的单元格数字组成,上下和左右是相邻的,注意:对角线不相邻,同一个单元格的数字不能重复使用。 - 每一位明文对应密文即为密码本中找到的单元格所在的行和列序号(序号从0开始)组成的两个数宇。如明文第 i 位 Data[i] 对应密码本单元原创 2024-06-03 17:30:22 · 4819 阅读 · 0 评论 -
华为OD机试C卷-- 贪心歌手(Java & JS & Python & C)
一个歌手准备从A城去B城参加演出。按照合同,他必须在 T 天内赶到歌手途经 N 座城市歌手不能往回走每两座城市之间需要的天数都可以提前获知。歌手在每座城市都可以在路边卖唱赚钱。经过调研,歌手提前获知了每座城市卖唱的收入预期:如果在一座城市第一天卖唱可以赚M,后续每天的收入会减少D(第二天赚的钱是 M - D,第三天是 M - 2D ...)。如果收入减少到 0 就不会再少了。歌手到达后的第二天才能开始卖唱。如果今天卖过唱,第二天才能出发。贪心的歌手最多可以赚多少钱?原创 2024-06-03 17:26:36 · 5617 阅读 · 1 评论 -
华为OD机试C卷-- 贪吃蛇(Java & JS & Python)
贪吃蛇是一个经典游戏,蛇的身体由若干方格连接而成,身体随蛇头移动。蛇头触碰到食物时,蛇的长度会增加一格。蛇头和身体的任一方格或者游戏版图边界碰撞时,游戏结束。下面让我们来完成贪吃蛇游戏的模拟。给定一个N*M的数组arr,代表N*M个方格组成的版图,贪吃蛇每次移动一个方格。若arr[i][j] == ‘H’,表示该方格为贪吃蛇的起始位置;若arr[i][j] == ‘F’,表示该方格为食物,若arr[i][j] == ‘E’,表示该方格为空格。贪吃蛇初始长度为1,初始移动方向为向左。原创 2024-06-03 17:21:59 · 7225 阅读 · 0 评论 -
华为OD机试C卷-- 贪吃的猴子(Java & JS & Python & C)
一只贪吃的猴子,来到一个果园,发现许多串香蕉排成一行,每串香蕉上有若干根香蕉。每串香蕉的根数由数组numbers给出。猴子获取香蕉,每次都只能从行的开头或者末尾获取,并且只能获取N次,求猴子最多能获取多少根香蕉。原创 2024-06-03 17:16:50 · 7734 阅读 · 0 评论 -
华为OD机试C卷-- 数组二叉树(Java & JS & Python)
二叉树也可以用数组来存储,给定一个数组,树的根节点的值存储在下标1,对于存储在下标N的节点,它的左子节点和右子节点分别存储在下标2*N和2*N+1,并且我们用值-1代表一个节点为空。给定一个数组存储的二叉树,试求从根节点到最小的叶子节点的路径,路径由节点的值组成。原创 2024-06-03 17:13:47 · 7153 阅读 · 0 评论 -
华为OD机试C卷-- 数字排列(Java & JS & Python & C & C++)
小明负责公司年会,想出一个趣味游戏:屏幕给出 1 ~ 9 中任意 4 个不重复的数字,大家以最快时间给出这几个数字可拼成的数字从小到大排列位于第 N 位置的数字,其中 N 为给出数字中最大的(如果不到这么多数字则给出最后一个即可)。注意:原创 2024-06-03 17:07:10 · 7375 阅读 · 1 评论 -
华为OD机试C卷-- 任务最优调度(Java & JS & Python & C)
给定一个正整数数组表示待系统执行的任务列表,数组的每一个元素代表一个任务,元素的值表示该任务的类型。请计算执行完所有任务所需的最短时间。任务执行规则如下: 1. 任务可以按任意顺序执行,且每个任务执行耗时间均为1个时间单位。 2. 两个同类型的任务之间必须有长度为N个单位的冷却时间,比如N为2时,在时间K执行了类型3的任务,那么K+1和K+2两个时间不能执行类型3任务。 3. 系统在任何一个单位时间内都可以执行一个任务,或者等待状态。原创 2024-06-03 17:02:13 · 7318 阅读 · 0 评论 -
华为OD机试C卷-- 亲子游戏(Java & JS & Python & C)
宝宝和妈妈参加亲子游戏,在一个二维矩阵(N*N)的格子地图上,宝宝和妈妈抽签决定各自的位置,地图上每个格子有不同的糖果数量,部分格子有障碍物。游戏规则是妈妈必须在最短的时间(每个单位时间只能走一步)到达宝宝的位置,路上的所有糖果都可以拿走,不能走障碍物的格子,只能上下左右走。请问妈妈在最短到达宝宝位置的时间内最多拿到多少糖果(优先考虑最短时间到达的情况下尽可能多拿糖果)。原创 2024-06-03 16:58:15 · 7390 阅读 · 1 评论 -
华为OD机试C卷-- 抢7游戏(Java & JS & Python & C)
A、B两个人玩抢7游戏,游戏规则为:A先报一个起始数字 X(10 ≤ 起始数字 ≤ 10000),B报下一个数字 Y (X - Y < 3),A再报一个数字 Z(Y - Z < 3),以此类推,直到其中一个抢到7,抢到7即为胜者;在B赢得比赛的情况下,一共有多少种组合?原创 2024-06-03 16:54:53 · 7401 阅读 · 0 评论 -
华为OD机试C卷-- 启动多任务排序(Java & JS & Python & C)
一个应用启动时,会有多个初始化任务需要执行,并且任务之间有依赖关系,例如A任务依赖B任务,那么必须在B任务执行完成之后,才能开始执行A任务。现在给出多条任务依赖关系的规则,请输入任务的顺序执行序列,规则采用贪婪策略,即一个任务如果没有依赖的任务,则立刻开始执行,如果同时有多个任务要执行,则根据任务名称字母顺序排序。例如:B任务依赖A任务,C任务依赖A任务,D任务依赖B任务和C任务,同时,D任务还依赖E任务。那么执行任务的顺序由先到后是:>A任务,E任务,B任务,C任务,D任务这里A和E任务都原创 2024-06-03 16:51:56 · 7321 阅读 · 1 评论 -
华为OD机试C卷-- 攀登者2(Java & JS & Python & C)
攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。其中数组元素0代表地面。例如:[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0],代表如下图所示的地图,地图中有两个山脉位置分别为 1,2,3,4,5 和 8,9,10,11,12,13,最高峰高度分别为 4,3。最高峰位置分别为3,10。一个山脉可能有多座山峰(高度大于相邻位置的高度,或在地图边界且高度大于相邻的高度)。原创 2024-06-03 00:08:49 · 6207 阅读 · 6 评论 -
华为OD机试C卷-- 模拟数据序列化传输(Java & JS & Python & C & C++)
模拟一套简化的序列化传输方式,请实现下面的数据编码与解码过程 1. 编码前数据格式为 [位置,类型,值],多个数据的时候用逗号分隔,位置仅支持数字,不考虑重复等场景;类型仅支持:Integer / String / Compose(Compose的数据类型表示该存储的数据也需要编码) 2. 编码后数据参考图示,数据区的格式是:位置#类型#长度#数据,类型存储需要编码,Integer->0;String->1;Compose->2,长度是指数据的字符长度;数据仅允许数字、大小写字母、空格。原创 2024-06-03 00:05:15 · 4833 阅读 · 7 评论