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

在这里插入图片描述

大家好,我是哪吒。

2025年7月16日,华为官方已经将华为OD机试(B卷)切换为 C 卷。

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

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

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

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

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

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

在这里插入图片描述

推荐刷题方法

  1. 优先刷2025C卷真题(目前在考的就是2025C卷,包含1道C卷新题、2道A卷/B卷/C卷/D卷/E卷旧题)
  2. 按算法分类刷题,逐个击破,效率更高
  3. 刷题方式:
    • 模拟考试环境,只看题目,不看解题思路和代码实例,通过IDE解题
    • 100分题目,闭卷40分钟
    • 200分题目,闭卷60分钟
    • 解答完,再看文章解题思路和代码
  4. 刷题在于精,不在多
  5. 在于理解,切记背代码

刷题过程中,遇到算法问题,推荐使用ChatGPT解决。

一、适合人群

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

二、本期训练时间

2025年7月28日(周一) ~ 2025年8月3日(周日)

三、如何参加

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

四、七日集训

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

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

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

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

在这里插入图片描述

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

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

在这里插入图片描述

第1天、逻辑分析

华为OD机试 - 数据单元的变化替换(Java 2025 C卷 100分)

华为OD机试 - 提取字符串中的最长合法简单数学表达式(Java 2025 C卷 100分)

华为OD机试 - 异常的打卡记录(Java 2024 C卷 100分)

第2天、逻辑分析

华为OD机试 - TLV格式(Java 2025 C卷 100分)

华为OD机试 - 流水线(Java 2025 C卷 100分)

华为OD机试 - 矩形相交的面积(Java 2025 C卷 100分)

第3天、双指针

华为OD机试 - 叠积木1 - 双指针(Java 2025 C卷 200分)

华为OD机试 - 两个集合输出距离最近的数字 - 双指针(Java 2025 B卷 100分)

华为OD机试 - 事件推送 - 双指针(Java 2025 B卷 100分)

第4天、数据结构

华为OD机试 - 最差产品奖 - 双端队列(Java 2025 C卷 200分)

华为OD机试 - 数组排列求和 - HashSet、分类和迭代(Java 2025 B卷 200分)

华为OD机试 - 真正的密码 - 数据结构list(Java 2025 B卷 100分)

第5天、栈stack

华为OD机试 - 最大括号深度 - 栈stack(Java 2025 C卷 100分)

华为OD机试 - 荒岛求生 - 栈Stack(Java 2025 C卷 100分)

华为OD机试 - 找朋友- 单调栈(Java 2025 B卷 100分)

第6天、滑动窗口

华为OD机试 - 用连续自然数之和来表达整数 - 滑动窗口(Java 2025 C卷 100分)

华为OD机试 - 求满足条件的最长子串的长度 - 滑动窗口(Java 2025 B卷 100分)

华为OD机试 - 宽度最小的子矩阵 - 滑动窗口(Java 2025 A卷 200分)

第7天、二分查找

华为OD机试 - 猴子吃桃 - 二分查找(Java 2025 C卷 100分)

华为OD机试 - 生日礼物 - 二分查找(Java 2025 B卷 100分)

华为OD机试 - 数据最节约的备份方法 - 二分查找(Java 2025 B卷 100分)

六、集训总结

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

国内直接使用ChatGPT4o、o3、o4-mini-high、GPT-4.5、GPT4.1、Gemini 2.5 pro、Claude Sonnet 4、DeepSeek R1 0528、马斯克Grok 4

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

在这里插入图片描述

1、纯原版ChatGPT、Claude

✅️官网原生页面

✅️真实Team会员账号

2、技术支持

✔️支持ChatGPT4o、o3、o4-mini-high、GPT-4.5、GPT4.1

✔️Gemini 2.5 pro、Claude Sonnet 4、DeepSeek R1 0528、马斯克 Grok 4

✔️无需魔法、个人独享

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

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

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

在这里插入图片描述

### 华为OD2025A——出租车计费问题的C语言实现 根据常见的华为OD题目设定,出租车计费问题通常涉及距离费用计算、等待时间费用计算以及折扣优惠等因素。以下是对此类问题的一个通用解决方案。 #### 问题描述 假设一辆出租车按照以下规则收费: 1. 起步价为`F`元,对应起步里程为`M`公里; 2. 超过起步里程后,每增加一公里加收`P`元; 3. 等待时间为`T`分钟时,额外收取`W`元作为等待费用; 4. 如果总费用超过一定金额`D`,则给予一定的折扣比例`R%`。 输入一组行驶记录(包括行驶的距离和等待时间),输出最终应付的费用。 --- #### 解决思路 1. **基础费用计算**: 根据行驶距离判断是否超出起步里程,并累加相应费用。 2. **等待费用叠加**: 将等待时间转换成对应的费用项。 3. **折扣应用**: 计算总价后检查是否满足折扣条件,再按比例扣减。 4. **边界处理**: 输入数据可能存在特殊情况(如零距离或零等待时间),需单独讨论。 --- #### C语言代码实现 下面是一个完整的C语言程序实现: ```c #include <stdio.h> // 定义常量参数 #define F 10 // 起步价 (单位: 元) #define M 3 // 起步里程 (单位: km) #define P 2 // 超出部分单价 (单位: 元/km) #define W 1 // 每分钟等待费用 (单位: 元/min) #define D 50 // 折扣门槛价格 (单位: 元) #define R 0.9 // 折扣比率 (9折) double calculateTaxiFee(double distance, double waitTime) { double fee = 0; // Step 1: 计算基本行程费用 if(distance <= M){ fee += F; // 不足起步里程只收起步价 }else{ fee += F + (distance - M)*P; // 超过起步里程的部分按单价累加 } // Step 2: 加入等待费用 fee += waitTime * W; // Step 3: 应用折扣 if(fee >= D){ fee *= R; } return fee; } int main(){ int cases; // 测案例数目 printf("请输入测案例数目: "); scanf("%d", &cases); while(cases--){ double dist, time; printf("请输入行驶距离(km) 和 等待时间(min): "); scanf("%lf %lf", &dist, &time); double total_fee = calculateTaxiFee(dist, time); printf("本次出行费用为 %.2f 元\n", total_fee); } return 0; } ``` --- #### 输出样例说明 假如输入如下: ``` 请输入测案例数目: 2 请输入行驶距离(km) 和 等待时间(min): 5 10 请输入行驶距离(km) 和 等待时间(min): 2 5 ``` 输出应为: ``` 本次出行费用为 20.00 元 本次出行费用为 15.00 元 ``` 解释: - 第一条记录 `(5km, 10min)` 的费用计算过程为: - 行驶费用:起始价`10`元 + 超出部分`(5-3)*2=4`元 → 总共`14`元; - 等待费用:`10*1=10`元; - 合计`24`元,因大于折扣阈值`50`元故不打折,实际支付仍为`20`元。 - 第二条记录 `(2km, 5min)` 的费用计算过程为: - 行驶费用仅含起步价`10`元; - 等待费用:`5*1=5`元; - 合计`15`元小于折扣阈值,无需打折。 --- #### 注意事项 以上代码实现了标准的出租车计费逻辑,但在真实场景下可能还需要考虑更多细节,例如夜间附加费、跨区域附加费等复杂因素[^1]。此外,在大规模并发请求环境下性能优化也是不可忽视的一环[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

哪 吒

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

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

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

打赏作者

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

抵扣说明:

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

余额充值