华为OD机试2025A卷七日集训第2期 - 按算法分类,由易到难,循序渐进,玩转OD

在这里插入图片描述

大家好,我是哪吒。

2025年3月16日,华为官方已经将华为OD机试(E卷)切换为 A 卷。

目前正在考的是A卷,按照华为OD往常的操作,A卷题目是由往年真题(E卷/A卷/B卷/C卷/D卷)+全新题目组成,也就是说2025A卷还会考到A卷、B卷、C卷、D卷、E卷的题目,比例大概是1道新题、2道旧题的样子。

2025年3月16日之后,很多小伙伴收到的是A卷,那么恭喜你看到本文了,抓紧刷题吧。A卷新题库正在更新中

最近一直在刷华为OD机试的算法题,坚持一天两道题的节奏,已经一年多了,刷了600多道题

最近还组织了“【陪伴学习】华为OD刷题交流群”,目前有361人在群。

希望用我自己疯狂刷题的劲头,感染大家,让大家爱上刷题,顺利通过华为OD机试,掌握更多优秀的算法

为了更高效、更有乐趣的刷题,学习,即日起开展 “华为OD七日集训”

在这里插入图片描述

一、适合人群

  1. 参加华为OD机试的小伙伴们
  2. 想学习一下算法的小伙伴们
  3. 题库题目太多,刷题没方向
  4. 想刷题,没动力,三天打鱼两天晒网

二、本期训练时间

2025年5月6日(周二) ~ 2025年5月12日(周一)

三、如何参加

私信哪吒,备注华为OD七日集训,加入华为OD七日集训。

四、七日集训第2期

遵循“按算法分类,由易到难”的刷题思路。

制定N期7日集训,达到有效刷题,高效刷题,顺序通关的目的。

1、 先了解华为OD机试,是个啥?

2、喜提华为OD算法总纲,运筹帷幄之中决胜千里之外。

在这里插入图片描述

五、精心挑选21道高频100分经典题目,作为入门。

21天法则定律,又称为21天养成习惯法则,是指一个人坚持做某件事情21天后,就能够形成一种习惯,这个习惯将会成为自己生活中的一部分,从而达到自我成长和提升的目的。这个法则源于美国心理学家马克斯·马尔茨,他在研究人类行为习惯时发现,一个人需要至少21天的时间去养成一种新的习惯。

在这里插入图片描述

第1天、逻辑分析

华为OD机试 - 斗地主之顺子(Java 2025 A卷 200分)

华为OD机试 - 优选核酸检测点(Java 2025 A卷 100分)

华为OD机试 - AI面板识别(Java 2025 A卷 100分)

第2天、逻辑分析

华为OD机试 - 攀登者2(Java 2025 A卷 200分)

华为OD机试 - 报文回路(Java 2025 A卷 100分)

华为OD机试 - 座位调整 - 逻辑分析(Java 2025 A卷 100分)

第3天、逻辑分析

华为OD机试 - 组成最大数(Java 2025 A卷 100分)

华为OD机试 - 最小的调整次数(Java 2025 A卷 200分)

华为OD机试 - 简单的自动曝光(Java 2025 A卷 100分)

第4天、双指针

华为OD机试 - 求最多可以派出多少支团队 - 双指针(Java 2025 A卷 100分)

华为OD机试 - 考勤信息 - 双指针(Java 2025 A卷 100分)

华为OD机试 - 工号不够用了怎么办 - 双指针(Java 2025 A卷 100分)

第5天、map与list

华为OD机试 - 告警抑制 - 数据结构map(Java 2025 A卷 100分)

华为OD机试 - 全量和已占用字符集 - 数据结构map(Java 2025 A卷 100分)

华为OD机试 - 字符统计及重排 - 数据结构list、排序(Java 2025 A卷 100分)

第6天、滑动窗口

华为OD机试 - 关联子串 - 滑动窗口(Java 2025 A卷 100分)

华为OD机试 - 补种未成活胡杨 - 滑动窗口(Java 2025 A卷 100分)

华为OD机试 - 阿里巴巴找黄金宝箱(V) - 滑动窗口(Java 2025 A卷 100分)

第7天、贪心算法

华为OD机试 - 贪心的商人 - 贪心(Java 2025 A卷 100分)

华为OD机试 - 报数游戏 - 约瑟夫环(Java 2025 A卷 200分)f

华为OD机试 - 数字序列比大小 - 贪心思维(Java 2025 A卷 100分)

六、集训总结

参加完华为OD七日集训的小伙伴,可以写一篇 “华为OD7日集训总结” 文章,发布在CSDN,作为一个成果物。

国内直接使用最新o3、o4-mini-high、GPT4.1、GPT-4.5、满血ChatGPT4o、671B满血DeepSeek R1、马斯克Grok 3、Gemini 2.5 pro

✅️ChatGPT使用地址:www.nezhasoft.cloud

在这里插入图片描述

1、纯原版ChatGPT、Claude

✅️官网原生页面

✅️真实Team会员账号

2、技术支持

✔️支持最新o3、o4-mini-high、GPT4.1、GPT-4.5、满血ChatGPT4o(AI绘画不降智)

✔️671B满血DeepSeek R1、Claude 3.7 sonnent、Grok 3 thinking、Gemini 2.5 pro

✔️无需魔法、个人独享

3、支持所有GPTs + 自定义插件

支持ChatGPT所有插件,可创建自己的ChatGPT插件,使用朋友分享的自定义插件。

例如最强编程插件Code Copilot、AI绘画插件DALL-E、论文专属Consensus。

在这里插入图片描述

### 华为OD分糖果问题的Python解题思路 #### 问题描述 小明从糖果盒中随意抓取一定数量的糖果,每次可以执行三种操作之一:取出一半糖果并舍去余数;如果当前糖果数目为奇数,则可以从盒子中再拿一个糖果或将手里的一个糖果放回去。目标是最少经过几次这样的操作能够使手中的糖果变为一颗。 为了达到这个目的,采用贪心策略来解决问题[^3]。具体来说,在每一步都尽可能快速地减少糖果的数量直到只剩下一颗为止。当遇到奇数个糖果时,优先考虑加一而不是减一,因为这样可以在下一轮更有效地通过除以2的方式大量削减糖果总数。 #### 贪婪算法分析 对于任意正整数n表示初始糖果数: - 如果 n 是偶数,则直接将其除以2- 若 n 为奇数,则判断 (n+1)/2 和 (n−1)/2 的大小关系,选择较小的那个作为下一步的结果,这是因为我们希望更快接近1。 这种做法基于这样一个事实——当我们面对两个连续的奇数值时,较大的那个总是可以通过增加1变成一个小得多的新值(即其半数),而较小的一个则需要两次操作才能完成同样的效果(先减后除)[^4]。 #### Python代码实现 下面给出了解决上述问题的具体Python程序: ```python def min_steps_to_one(n): steps = 0 while n != 1: if n % 2 == 0: n //= 2 elif ((n + 1) // 2) < ((n - 1) // 2): n += 1 else: n -= 1 steps += 1 return steps if __name__ == "__main__": candy_count = int(input().strip()) print(min_steps_to_one(candy_count)) ``` 此函数接收一个参数`n`代表起始的糖果数量,并返回将这些糖果减少到只有一个所需的最小步数。主程序部分读入用户输入的数据并调用该方法打印最终结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值