
华为OD
文章平均质量分 90
华为OD
笃行其道
商务合作,学习交流(V):revivewaves
人生我随缘,Debug不随缘。只为成功找方法,不为失败找理由。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【华为OD】来自异国的客人
题目要求将十进制数k转换为m进制后统计幸运数字n出现的次数。核心解法是通过进制转换后的数字位数统计特定数字出现次数。提供两种实现方式:除法取余法(直接在转换过程中统计)和字符串转换法(先转换再统计)。两种方法时间复杂度均为O(logₘk),空间复杂度除法取余法更优。示例输入10 2 4输出2,因为10的4进制表示为22包含2个2。题目考察进制转换基础能力,解法选择取决于具体需求。原创 2025-09-14 00:15:07 · 10726 阅读 · 67 评论 -
【华为OD】完美走位
本文介绍了华为OD机试题目"完美走位"的解题思路和实现方案。题目要求在第一人称射击游戏的走位字符串中,找到需要替换的最短连续子串,使其变成完美走位(A、S、D、W四个字符出现次数相等)。文章提供了两种解法:第一种是滑动窗口算法,时间复杂度O(n),通过维护窗口来寻找包含所有需要替换字符的最短子串;第二种是前缀和配合哈希表,时间复杂度O(n²),通过枚举所有可能的子串长度来求解。原创 2025-09-10 20:14:11 · 13783 阅读 · 2 评论 -
【华为OD】阿里巴巴找黄金宝箱
本文介绍了如何解决阿里巴巴找黄金宝箱的问题,即在一个数字序列中寻找连续k个数的最大和。文章提供了两种解法:暴力遍历法和滑动窗口优化法。暴力法时间复杂度为O(n×k),而滑动窗口通过在固定窗口内计算和并滑动优化,时间复杂度降至O(n)。文中给出了Java、Python和C++三种语言的实现代码,并分析了两种方法的复杂度。滑动窗口法是更优解,适用于处理大规模数据,是解决此类问题的推荐方法。原创 2025-09-10 19:54:31 · 13928 阅读 · 2 评论 -
【华为OD】找出通过车辆最多颜色
【华为OD】找出通过车辆最多颜色 题目要求统计给定时间窗口内出现次数最多的车辆颜色数量。给定车辆颜色数组和时间窗口大小,需遍历所有可能的窗口,找出每个窗口内颜色出现的最大次数。 解题思路: 滑动窗口法:遍历所有可能的窗口位置 对每个窗口内的三种颜色(0,1,2)进行计数 比较并记录所有窗口中的最大颜色出现次数 示例说明: 输入 [0,1,2,1] 窗口3,输出2(窗口[1,2,1]中1出现2次) 输入 [0,1,2,1] 窗口2,输出1(各窗口最多出现1次) 提供两种解法: 暴力解法:遍历每个窗口重新计数原创 2025-09-10 19:46:48 · 13740 阅读 · 0 评论 -
【华为OD】区块链文件转储系统
【华为OD】区块链文件转储系统摘要 题目要求在给定容量M的SATA盘上,从区块链文件序列中找出连续文件的最大和(不超过M)。这是一个变形的最大连续子数组和问题。 核心解法: 滑动窗口法(最优解):双指针维护窗口,动态调整左右边界,时间复杂度O(n) 暴力枚举法:双重循环枚举所有子数组,时间复杂度O(n²) 实现要点: Java/Python/C++均采用滑动窗口法,通过维护currentSum和maxSum来求解 当currentSum超过M时,左指针右移收缩窗口 暴力法通过剪枝(超过M即终止内层循环)优化原创 2025-09-10 20:02:11 · 14432 阅读 · 1 评论 -
【华为OD】贪吃的猴子
【摘要】题目描述贪吃的猴子只能从香蕉数组的两端选取N次,求最大香蕉数。解法包括:1)前缀和枚举法:通过预计算前缀和,枚举所有左右组合的可能;2)滑动窗口法:先取前N个元素,逐步调整窗口位置。输入示例1输出10,说明最优策略为从右端取1、6、3。两种解法分别用Java、Python、C++实现,时间复杂度均为O(N)。核心思想是利用前缀和优化计算,或滑动窗口寻找最大子数组和。原创 2025-09-10 19:38:54 · 14115 阅读 · 0 评论