南山0112
计算机视觉算法领域, 发表CV顶级论文多篇, 大厂算法工程师, 曾斩获百度/腾讯/阿里/快手/抖音……等多家大厂offer, 有丰富的面试、刷题经验。
展开
-
华为OD机试 Python -排队游戏
新来的老师给班里的同学排一个队。每个学生有一个影力值。一些学生是刺头,不会听老师的话,自己选位置,非刺头同学在剩下的位置按照能力值从小到大排。对于非刺头同学,如果发现他前面有能力值比自己高的同学,他不满程度就增加,增加的数量等于前面能力值比他大的同学的个数。刺头不会产生不满。如果整个班级累计的不满程度超过k,那么老师就没有办法教这个班级了。原创 2024-03-28 20:49:59 · 61 阅读 · 0 评论 -
华为OD机试 Python -采样过滤
在做物理实验时,为了计算物体移动的速率,通过相机等工具周期性的采样物体移动距离。由于工具故障,采样数据存在误差甚至错误的情况。需要通过一个算法过滤掉不正确的采样值。不同工具的故障模式存在差异,算法的各类门限会根据工具类型做相应的调整。请实现一个算法,计算出给定一组采样值中正常值的最长连续周期。判断第 i 个周期的采样数据 S[i] 是否正确的规则如下(假定物体移动速率不超过10个单元,前一个采样周期 S[i-1] ):•S[i]原创 2024-03-28 20:49:19 · 2334 阅读 · 0 评论 -
华为OD机试 Python -编码能力提升计划
为了提升软件编码能力,小王制定了刷题计划,他选了题库中的n道题,编号从0到n-1,并计划在m天内按照题目编号顺序刷完所有的题目(注意,小王不能用多天完成同一题)。在小王刷题计划中,小王需要用tme[i]的时间完成编号 i 的题目。此外,小王还可以查看答案,可以省去该题的做题时间。为了真正达到刷题效果,小王每天最多直接看一次答案。我们定义m天中做题时间最多的一天耗时为T(直接看答案的题目不计入做题总时间)。请你帮小王求出最小的T是多少。原创 2024-03-28 20:48:44 · 72 阅读 · 0 评论 -
华为OD机试 Python -荒岛求生
一个荒岛上有若干人,岛上只有一条路通往岛屿两端的港口,大家需要逃往两端的港口才可逃生。假定每个人移动的速度一样,且只可选择向左或向右逃生。若两个人相遇,则进行决斗,战斗力强的能够活下来,并损失掉与对方相同的战斗力;若战斗力相同,则两人同归于尽。原创 2024-03-28 20:48:11 · 65 阅读 · 0 评论 -
华为OD机试 Python -二维伞的雨滴效应
普通的伞在二维平面世界中,左右两侧均有一条边,而两侧伞边最下面各有一个伞坠子,雨滴落到伞面,逐步流到伞坠处,会将伞坠的信息携带并落到地面,随着日积月累,地面会呈现伞坠的信息。1、为了模拟伞状雨滴效应,用二叉树来模拟二维平面伞(如下图所示),现在输入一串正整数数组序列(不含0,数组成员至少是1个),若此数组序列是二叉搜索树的前序遍历的结果,那么请输出一个返回值1,否则输出0。2、同时请将此序列构成的伞状效应携带到地面的数字信息输出来(左边伞坠信息,右边伞坠信息,详细参考示例图地面上数字),若此树不存在原创 2024-03-28 20:47:37 · 156 阅读 · 0 评论 -
华为OD机试 Python -无重复字符的最长子串
给定一个字符串s(0 ≤ s.length ≤ 5 * 10000,且由英文字母、数字、符号和空格组成),请你找出其中不含有重复字符的最长子串的长度。原创 2024-03-28 20:47:03 · 54 阅读 · 0 评论 -
华为OD机试 Python -分割均衡字符串
均衡串定义:字符串中只包含两种字符,且这两种字符的个数相同。给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。约定:字符串中只包含大写的 X 和 Y 两种字符。原创 2024-03-28 20:46:31 · 55 阅读 · 0 评论 -
华为OD机试 Python -最富裕的小家庭
在一颗树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为一个小家庭。现给你一颗树,请计算出最富裕的小家庭的财富和。原创 2024-03-28 20:46:01 · 154 阅读 · 0 评论 -
华为OD机试 Python -爱吃蟠桃的孙悟空
孙悟空爱吃蟠桃,有一天趁着蟠桃园守卫不在来偷吃。已知蟠桃园有 N 棵桃树,每颗树上都有桃子,守卫将在 H 小时后回来。孙悟空可以决定他吃蟠桃的速度K(个/小时),每个小时选一颗桃树,并从树上吃掉 K 个,如果树上的桃子少于 K 个,则全部吃掉,并且这一小时剩余的时间里不再吃桃。孙悟空喜欢慢慢吃,但又想在守卫回来前吃完桃子。请返回孙悟空可以在 H 小时内吃掉所有桃子的最小速度 K(K为整数)。如果以任何速度都吃不完所有桃子,则返回0。原创 2024-03-28 20:45:10 · 52 阅读 · 0 评论 -
华为OD机试 Python -分配土地
从前有个村庄,村民们喜欢在各种田地上插上小旗子,旗子上标识了各种不同的数字。某天集体村民决定将覆盖相同数字的最小矩阵形的土地分配给村里做出巨大贡献的村民,请问此次分配土地,做出贡献的村民种最大会分配多大面积?原创 2024-03-28 20:44:37 · 51 阅读 · 0 评论 -
华为OD机试 Python -开源项目热度榜单
某个开源社区希望将最近热度比较高的开源项目出一个榜单,推荐给社区里面的开发者。对于每个开源项目,开发者可以进行关注(watch)、收藏(star)、fork、提issue、提交合并请求(MR)等。数据库里面统计了每个开源项目关注、收藏、fork、issue、MR的数量,开源项目的热度根据这5个维度的加权求和进行排序。H = W(watch) x #watch + W(star) x #star + W(fork) x #fork + W(issue) x #issue + W(mr) x #mr原创 2024-03-28 20:44:04 · 56 阅读 · 0 评论 -
华为OD机试 Python -电脑病毒感染
一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用 t 表示。其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不会感染,则返回-1。给定一个数组 times 表示一台电脑把相邻电脑感染所用的时间。如图:path[i] = {i, j, t} 表示:电脑 i->j,电脑 i 上的病毒感染 j,需要时间 t。原创 2024-03-28 20:43:27 · 60 阅读 · 0 评论 -
华为OD机试 Python -智能成绩表
小明来到某学校当老师,需要将学生按考试总分或单科分数进行排名,你能帮帮他吗?原创 2024-03-28 20:42:31 · 62 阅读 · 0 评论 -
华为OD机试 Python -虚拟理财游戏
在一款虚拟游戏中生活,你必须进行投资以增强在虚拟游戏中的资产以免被淘汰出局。现有一家Bank,它提供有若干理财产品 m 个,风险及投资回报不同,你有 N(元)进行投资,能接收的总风险值为X。你要在可接受范围内选择最优的投资方式获得最大回报。原创 2024-03-28 20:41:45 · 83 阅读 · 0 评论 -
华为OD机试 Python -模拟目录管理功能
实现一个模拟目录管理功能的软件,输入一个命令序列,输出最后一条命令运行结果。支持命令:1.创建目录命令:mkdir 目录名称,如 mkdir abc 为在当前目录创建abc目录,如果已存在同名目录则不执行任何操作。此命令无输出。2.进入目录命令:cd 目录名称,如 cd abc 为进入abc目录,特别地,cd … 为返回上级目录,如果目录不存在则不执行任何操作。此命令无输出。3.查看当前所在路径命令:pwd,输出当前路径字符串。原创 2024-03-28 20:41:00 · 55 阅读 · 0 评论 -
华为OD机试 Python -最长子字符串的长度
给你一个字符串 s,首尾相连成一个环形,请你在环中找出 ‘o’ 字符出现了偶数次最长子字符串的长度。原创 2024-03-27 00:47:46 · 145 阅读 · 0 评论 -
华为OD机试 Python -提取字符串中的最长合法简单数学表达式
提取字符串中的最长合法简单数学表达式,字符串长度最长的,并计算表达式的值。如果没有,则返回 0 。简单数学表达式只能包含以下内容:•0-9数字,符号±*说明:1.所有数字,计算结果都不超过long2.如果有多个长度一样的,请返回第一个表达式的结果3.数学表达式,必须是最长的,合法的4.操作符不能连续出现,如 ±-+1 是不合法的原创 2024-03-27 00:46:47 · 83 阅读 · 0 评论 -
华为OD机试 Python -机器人搬砖
机器人搬砖,一共有 N 堆砖存放在 N 个不同的仓库中,第 i 堆砖中有 bricks[i] 块砖头,要求在 8 小时内搬完。机器人每小时能搬砖的数量取决于有多少能量格,机器人一个小时中只能在一个仓库中搬砖,机器人的能量格只在这一个小时有效,为使得机器人损耗最小化,应尽量减小每次补充的能量格数。为了保障在 8 小时内能完成搬砖任务,请计算每小时给机器人充能的最小能量格数。•无需考虑机器人补充能力格的耗时;•无需考虑机器人搬砖的耗时;•机器人每小时补充能量格只在这一个小时中有效;原创 2024-03-27 00:45:45 · 1630 阅读 · 0 评论 -
华为OD机试 Python -内存冷热标记
现代计算机系统中通常存在多级的存储设备,针对海量 workload 的优化的一种思路是将热点内存页优先放到快速存储层级,这就需要对内存页进行冷热标记。一种典型的方案是基于内存页的访问频次进行标记,如果统计窗口内访问次数大于等于设定阈值,则认为是热内存页,否则是冷内存页。对于统计窗口内跟踪到的访存序列和阈值,现在需要实现基于频次的冷热标记。内存页使用页框号作为标识。原创 2024-03-27 00:44:55 · 50 阅读 · 0 评论 -
华为OD机试 Python -密码输入检测
给定用户密码输入流 input,输入流中字符 ‘原创 2024-03-27 00:44:09 · 49 阅读 · 0 评论 -
华为OD机试 Python -找座位
在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。现在给出一排观众座位分布图,座位中存在已落座的观众,请计算出,在不移动现有观众座位的情况下,最多还能坐下多少名观众。原创 2024-03-27 00:43:26 · 80 阅读 · 0 评论 -
华为OD机试 Python -转盘寿司
寿司店周年庆,正在举办优惠活动回馈新老客户。寿司转盘上总共有 n 盘寿司,prices[i] 是第 i 盘寿司的价格,如果客户选择了第 i 盘寿司,寿司店免费赠送客户距离第 i 盘寿司最近的下一盘寿司 j,前提是 prices[j] < prices[i],如果没有满足条件的 j,则不赠送寿司。每个价格的寿司都可无限供应。原创 2024-03-27 00:42:48 · 55 阅读 · 0 评论 -
华为OD机试 Python -小朋友分组最少调整次数
n 个学生排成一排,学生编号分别是 1 到 n,n 为 3 的整倍数。老师随机抽签决定将所有学生分成 m 个 3 人的小组(n == 3 * m) ,为了便于同组学生交流,老师决定将小组成员安排到一起,也就是同组成员彼此相连,同组任意两个成员之间无其它组的成员。因此老师决定调整队伍,老师每次可以调整任何一名学生到队伍的任意位置,计为调整了一次, 请计算最少调整多少次可以达到目标。注意:对于小组之间没有顺序要求,同组学生之间没有顺序要求。原创 2024-03-27 00:41:32 · 69 阅读 · 0 评论 -
华为OD机试 Python -二叉树计算
给出一个二叉树如下图所示:请由该二叉树生成一个新的二叉树,它满足其树中的每个节点将包含原始树中的左子树和右子树的和。左子树表示该节点左侧叶子节点为根节点的一颗新树;右子树表示该节点右侧叶子节点为根节点的一颗新树。原创 2024-03-27 00:40:37 · 145 阅读 · 0 评论 -
华为OD机试 Python -游戏分组
部门准备举办一场王者荣耀表演赛,有 10 名游戏爱好者参与,分为两队,每队 5 人。每位参与者都有一个评分,代表着他的游戏水平。为了表演赛尽可能精彩,我们需要把 10 名参赛者分为示例尽量相近的两队。一队的实力可以表示为这一队 5 名队员的评分总和。现在给你 10 名参与者的游戏水平评分,请你根据上述要求分队,最后输出这两组的实力差绝对值。例:10 名参赛者的评分分别为:5 1 8 3 4 6 7 10 9 2,分组为(1 3 5 8 10)和(2 4 6 7 9),两组实力差最小,差值为1原创 2024-03-27 00:39:51 · 119 阅读 · 0 评论 -
华为OD机试 Python -围棋的气
围棋棋盘由纵横各19条线垂直相交组成,棋盘上一共19 x 19 = 361 个交点,对弈双方一方执白棋,一方执黑棋,落子时只能将棋子置于交点上。“气”是围棋中很重要的一个概念,某个棋子有几口气,是指其上下左右方向四个相邻的交叉点中,有几个交叉点没有棋子,由此可知:1.在棋盘的边缘上的棋子最多有 3 口气(黑1),在棋盘角点的棋子最多有2口气(黑2),其他情况最多有4口气(白1)2.所有同色棋子的气之和叫做该色棋子的气,需要注意的是,同色棋子重合的气点,对于该颜色棋子来说,只能计算一次气,比如下图原创 2024-03-27 00:39:14 · 56 阅读 · 0 评论 -
华为OD机试 Python -掌握的单词个数
有一个字符串数组 words 和一个字符串 chars。假如可以用 chars 中的字母拼写出 words 中的某个“单词”(字符串),那么我们就认为你掌握了这个单词。words 的字符仅由 a-z 英文小写字母组成,例如 “abc”chars 由 a-z 英文小写字母和 “?” 组成。其中英文 “?” 表示万能字符,能够在拼写时当作任意一个英文字母。例如:“?” 可以当作 “a” 等字母。注意:每次拼写时,chars 中的每个字母和万能字符都只能使用一次。输出词汇表 words 中你掌原创 2024-03-27 00:38:35 · 54 阅读 · 0 评论 -
华为OD机试 Python -小明找位置
小朋友出操,按学号从小到大排成一列;小明来迟了,请你给小明出个主意,让他尽快找到他应该排的位置。算法复杂度要求不高于nLog(n);学号为整数类型,队列规模 ≤ 10000;原创 2024-03-27 00:37:00 · 109 阅读 · 0 评论 -
华为OD机试 Python -分月饼
中秋节,公司分月饼,m 个员工,买了 n 个月饼,m ≤ n,每个员工至少分 1 个月饼,但可以分多个,单人分到最多月饼的个数是 Max1 ,单人分到第二多月饼个数是 Max2 ,Max1 - Max2 ≤ 3 ,单人分到第 n - 1 多月饼个数是 Max(n-1),单人分到第n多月饼个数是 Max(n) ,Max(n-1) – Max(n) ≤ 3,问有多少种分月饼的方法?原创 2024-03-27 00:36:17 · 45 阅读 · 0 评论 -
华为OD机试 Python -小华地图寻宝
小华按照地图去寻宝,地图上被划分成 m 行和 n 列的方格,横纵坐标范围分别是 [0, n-1] 和 [0, m-1]。在横坐标和纵坐标的数位之和不大于 k 的方格中存在黄金(每个方格中仅存在一克黄金),但横坐标和纵坐标之和大于 k 的方格存在危险不可进入。小华从入口 (0,0) 进入,任何时候只能向左,右,上,下四个方向移动一格。请问小华最多能获得多少克黄金?原创 2024-03-27 00:35:04 · 65 阅读 · 0 评论 -
华为OD机试 Python -园区参观路径
园区某部门举办了Family Day,邀请员工及其家属参加;将公司园区视为一个矩形,起始园区设置在左上角,终点园区设置在右下角;家属参观园区时,只能向右和向下园区前进,求从起始园区到终点园区会有多少条不同的参观路径。原创 2024-03-26 01:31:19 · 47 阅读 · 0 评论 -
华为OD机试 Python -执行任务赚积分
现有N个任务需要处理,同一时间只能处理一个任务,处理每个任务所需要的时间固定为1。每个任务都有最晚处理时间限制和积分值,在最晚处理时间点之前处理完成任务才可获得对应的积分奖励。可用于处理任务的时间有限,请问在有限的时间内,可获得的最多积分。原创 2024-03-26 01:30:48 · 131 阅读 · 0 评论 -
华为OD机试 Python -计算三叉搜索树的高度
定义构造三叉搜索树规则如下:每个节点都存有一个数,当插入一个新的数时,从根节点向下寻找,直到找到一个合适的空节点插入。查找的规则是:1.如果数小于节点的数减去500,则将数插入节点的左子树2.如果数大于节点的数加上500,则将数插入节点的右子树3.否则,将数插入节点的中子树给你一系列数,请按以上规则,按顺序将数插入树中,构建出一棵三叉搜索树,最后输出树的高度。原创 2024-03-26 01:30:17 · 87 阅读 · 0 评论 -
华为OD机试 Python -API集群负载统计
某个产品的RESTful API集合部署在服务器集群的多个节点上,近期对客户端访问日志进行了采集,需要统计各个API的访问频次,根据热点信息在服务器节点之间做负载均衡,现在需要实现热点信息统计查询功能。RESTful API是由多个层级构成,层级之间使用 / 连接,如 /A/B/C/D 这个地址,A属于第一级,B属于第二级,C属于第三级,D属于第四级。现在负载均衡模块需要知道给定层级上某个名字出现的频次,未出现过用0表示,实现这个功能。原创 2024-03-26 01:29:26 · 70 阅读 · 0 评论 -
华为OD机试 Python -剩余银饰的重量
有 N 块二手市场收集的银饰,每块银饰的重量都是正整数,收集到的银饰会被熔化用于打造新的饰品。每一回合,从中选出三块最重的银饰,然后一起熔掉。假设银饰的重量分别为 x 、y和z,且 x ≤ y ≤ z。那么熔掉的可能结果如下:•如果 x == y == z,那么三块银饰都会被完全熔掉;•如果 x == y 且 y != z,会剩余重量为 z - y 的银块无法被熔掉;•如果 x != y 且 y == z,会剩余重量为 y - x 的银块无法被熔掉;•如果 x != y 且 y !=原创 2024-03-26 01:28:51 · 92 阅读 · 0 评论 -
华为OD机试 Python -最多购买宝石数目
橱窗里有一排宝石,不同的宝石对应不同的价格,宝石的价格标记为 gems[i]0 ≤ i < nn = gems.length宝石可同时出售0个或多个,如果同时出售多个,则要求出售的宝石编号连续;例如客户最大购买宝石个数为m,购买的宝石编号必须为:gems[i],gems[i+1],…,gems[i+m-1]0 ≤ i < nm ≤ n假设你当前拥有总面值为 value 的钱,请问最多能购买到多少个宝石,如无法购买宝石,则返回0。原创 2024-03-26 01:27:36 · 51 阅读 · 0 评论 -
华为OD机试 Python -小明的幸运数
小明在玩一个游戏,游戏规则如下:在游戏开始前,小明站在坐标轴原点处(坐标值为0).给定一组指令和一个幸运数,每个指令都是一个整数,小明按照指令前进指定步数或者后退指定步数。前进代表朝坐标轴的正方向走,后退代表朝坐标轴的负方向走。幸运数为一个整数,如果某个指令正好和幸运数相等,则小明行进步数+1。例如:幸运数为3,指令为[2,3,0,-5]指令为2,表示前进2步;指令为3,正好和幸运数相等,前进3+1=4步;指令为0,表示原地不动,既不前进,也不后退。指令为-5,表示后退5原创 2024-03-26 01:27:04 · 62 阅读 · 0 评论 -
华为OD机试 Python -悄悄话
给定一个二叉树,每个节点上站一个人,节点数字表示父节点到该节点传递悄悄话需要花费的时间。初始时,根节点所在位置的人有一个悄悄话想要传递给其他人,求二叉树所有节点上的人都接收到悄悄话花费的时间。原创 2024-03-26 01:26:32 · 51 阅读 · 0 评论 -
华为OD机试 Python -CPU算力分配
现有两组服务器A和B,每组有多个算力不同的CPU,其中 A[i] 是 A 组第 i 个CPU的运算能力,B[i] 是 B组 第 i 个CPU的运算能力。一组服务器的总算力是各CPU的算力之和。为了让两组服务器的算力相等,允许从每组各选出一个CPU进行一次交换,求两组服务器中,用于交换的CPU的算力,并且要求从A组服务器中选出的CPU,算力尽可能小。原创 2024-03-26 01:25:44 · 41 阅读 · 0 评论 -
华为OD机试 Python -分披萨
"吃货"和"馋嘴"两人到披萨店点了一份铁盘(圆形)披萨,并嘱咐店员将披萨按放射状切成大小相同的偶数个小块。但是粗心的服务员将披萨切成了每块大小都完全不同奇数块,且肉眼能分辨出大小。由于两人都想吃到最多的披萨,他们商量了一个他们认为公平的分法:从"吃货"开始,轮流取披萨。除了第一块披萨可以任意选取外,其他都必须从缺口开始选。他俩选披萨的思路不同。"馋嘴"每次都会选最大块的披萨,而且"吃货"知道"馋嘴"的想法。已知披萨小块的数量以及每块的大小,求"吃货"能分得的最大的披萨大小的总和。原创 2024-03-26 01:25:14 · 67 阅读 · 0 评论