- 博客(1439)
- 收藏
- 关注
原创 华为OD机试2025C卷-字母组合[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
本文介绍了华为OD机试中的"字母组合"问题,要求根据手机九宫格键盘的数字字母映射关系(如2对应"abc"),输出给定数字串能表示的所有字母组合。通过回溯算法(DFS)实现,核心思想是递归处理每个数字对应的字母,构建所有可能的组合。文中提供了C++、Java等6种语言的代码实现,确保100%通过率,并分析了时间复杂度和空间复杂度。该问题考察了候选人对回溯算法的掌握程度,是算法面试中的高频考点。
2026-06-29 11:33:41
9
原创 华为OD机试2025C卷-字符串加密[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
字符串加密算法总结 核心思路 预处理偏移量:对k进行模26运算,处理大偏移量和负偏移量情况 查表法优化:预先生成大小写字母的加密映射表,避免重复计算 字符分类处理:区分大小写字母和其他字符,分别处理 关键点 循环移位处理:使用模运算实现字母表的循环移动 负数偏移量处理:通过加26转为正数 效率优化:查表法将时间复杂度降为O(n) 适用场景 需要加密包含大小写字母的字符串 支持任意大小的偏移量(包括负数) 要求高效处理长字符串加密 该算法在华为OD机试中属于字符串处理类题目,考察对字符编码、模运算和边界条件的
2026-06-29 11:32:41
11
原创 华为OD机试2025C卷-五子棋迷[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
五子棋有 8 个方向(上、下、左、右、左上、右上、左下、右下),但由于我们是从每个格子。
2026-06-29 11:32:01
10
原创 华为OD机试2025C卷-围棋的气[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
摘要 华为OD机试题目"围棋的气"要求计算给定棋盘坐标处棋子所属连通块的气数。解题思路采用BFS/DFS算法:若目标坐标为空则输出0;否则从该点出发搜索同色连通块,统计相邻空位数量(避免重复计数)。关键点包括边界检查、同色连通性判断以及气集合的去重处理。C++实现中通过二维数组记录访问状态和气的标记,队列实现BFS遍历,确保高效求解。该题考察基础图搜索算法的应用能力。
2026-06-29 11:31:21
7
原创 华为OD机试2025C卷-停车费用统计[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
停车费用统计问题摘要 该问题要求计算停车场多辆车的总停车费用,计费规则如下: 15分钟及以内免费 15分钟到1小时收费5元 超过1小时后,每小时加收3元(不足1小时按1小时计) 单次费用上限30元 输入: 第一行:停车记录数N 随后N行:每行包含入场和出场时间(HH:MM格式) 输出: 所有车辆的总停车费用 解题思路: 将时间转换为分钟数 计算停车时长 分段计费: ≤15分钟:0元 ≤60分钟:5元 60分钟:5元+超时费用(向上取整) 应用30元上限 累加所有记录的费用 代码实现采用数学公式法(O(1)时
2026-06-29 11:30:46
9
原创 华为OD机试2025C卷-双十一最大花费金额[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
双十一最大花费金额 - 动态规划解法 摘要:本文介绍了华为OD机试中"双十一最大花费金额"问题的动态规划解法。该问题要求在给定N件商品价格和优惠券面额X的情况下,选择若干商品使总花费不超过X且尽可能大。核心解法采用布尔型动态规划数组,记录每个金额是否可被拼出。算法时间复杂度为O(N*X),空间复杂度为O(X)。通过倒序遍历避免重复选择同一商品,最后从X向下查找第一个可达金额作为答案。文中提供了C++和Java的实现代码,并解释了与经典0-1背包问题的关系。 关键点: 问题本质是0-1背包/子集和问题的变体
2026-06-29 11:30:04
6
原创 华为OD机试2025C卷-剩余银饰重量[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
当 a < b + c 时,diff = |b - c|(即后两块的差值),而非 a 与某块的差值。等等——让我重新推导:初始 [3, 7, 2] → 取出最重的 3 块:7, 3, 2。a=7 > b+c=5,放回 7-5=2。题目描述了一个有趣的银饰熔炼过程:每次取出最重的三块银饰,按一定规则消耗或放回,直到剩余银饰不足三块。最暴力的思路是:每次从剩余银饰中选出最重的 3 块,处理后再排序。:当放回重量为 0 时,不应将 0 压入堆中,因为题目中银饰重量均为正整数,0 重量的银饰不存在意义。
2026-06-29 11:29:11
6
原创 华为OD机试2025C卷-内存资源分配[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
这篇文章摘要如下: 题目要求根据给定的物理内存容量M和N个应用程序的内存请求,最大化可同时运行的应用数量。每个应用的内存需求需向上取整至4MB的倍数,分配后内存不可复用。解题核心是贪心算法:将应用按调整后的内存需求升序排序,优先分配最小需求的应用以最大化数量。文章通过示例验证了算法的正确性,并提供C++和Java的代码实现,强调贪心策略的高效性(O(N log N)时间)。动态规划解法被提及但认为非必要,因所有应用价值均等,贪心已是最优解。
2026-06-29 11:27:44
7
原创 华为OD机试2025C卷-哈夫曼树[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
文章摘要 本文详细讲解了哈夫曼树及其带权路径长度(WPL)的计算方法。在华为OD机试中,该题目考察利用最小堆高效计算WPL的技巧。核心思路是:通过优先队列不断合并最小两个节点,并将每次合并值累加得到WPL,无需显式构建二叉树。文章对比了暴力建树法和最优堆解法,重点阐述了后者O(N logN)时间复杂度的数学原理,即每次合并对WPL的贡献等于节点权值之和。C++实现展示了如何使用标准库的priority_queue配合greater<int>构建最小堆,通过循环合并节点并累加sum值,最终输出WPL。示例分析
2026-06-29 11:26:41
10
原创 华为OD机试2025C卷-国际移动用户识别码IMSI匹配[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
如果前缀数量极大(百万级),Trie 树是更优的方案。构建 Trie 时从根节点开始,将目标 IMSI 逐字符在 Trie 中匹配,走到最深的有终止标记的节点即为答案。记录所有匹配的前缀,从中找出最长的。时间复杂度 O(N * L),其中 N 是前缀数量,L 是前缀长度(最多 15)。:由于前缀按长度降序排列,第一个被匹配到的前缀一定是所有匹配前缀中最长的。如果按长度升序排序,可能返回一个较短的前缀(因为短前缀同样可以匹配),导致答案错误。:题目要求的是"目标 IMSI 以前缀开头",即前缀匹配(
2026-06-29 11:25:53
8
原创 华为OD机试2025C卷-分苹果[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
分苹果问题是一道经典的题目。表面上看起来是"把一堆苹果分给两个小朋友,让总重量尽可能接近",但增加了"其中A小朋友必须恰好分到K个苹果"的约束后,难度立刻上升了一个台阶。如果你直接尝试贪心——比如排序后交替分配,或者每次把当前最重的苹果给总重量较轻的一方——很快就会在样例中翻车。本题的正确解法是,通过二维DP(或者滚动数组优化)记录"选了i个苹果能否凑出重量j",最后在所有恰好选了K个苹果的状态中,找到最接近总重量一半的那个值。
2026-06-29 11:25:04
19
原创 华为OD机试2025C卷-分披萨[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
定义 dp[l][r]:表示在区间[l, r](闭区间,包含两端)上,当前先手玩家能够获得的最大披萨总量。
2026-06-29 11:24:07
18
原创 华为OD机试2025C卷-发广播[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
摘要 题目描述了一个广播站通信问题:给定N个广播站的坐标和覆盖半径,若两个站的距离不超过半径之和则可以直接通信,间接通信也视为连通。要求计算最少需要启动多少个广播站,使得所有启动的站之间能够互相通信(直接或间接)。 解题方法: 并查集:初始化每个站为独立集合,遍历所有站对,若满足通信条件则合并集合。最终统计连通分量数量即为答案。 DFS/BFS:通过深度或广度优先搜索标记连通分量,统计未访问节点数。 代码实现:提供了C++和Java的并查集解法,通过路径压缩和按秩合并优化,确保高效计算连通分量数。 输入示例
2026-06-29 11:23:33
22
原创 华为OD机试2025C卷-代码编辑器[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
本文摘要: 华为OD机试2025C卷中的"代码编辑器"题目要求实现一个支持六种操作的简易文本编辑器。题目考察字符串操作和边界条件处理能力,需要精确控制光标位置和剪贴板管理。解题采用暴力模拟法,使用可变字符串存储文本,维护光标指针和剪贴板变量。对于每种操作(插入、删除、移动光标、复制粘贴),都需处理越界等特殊情况。文章提供了C++、Java等六种语言的实现代码,均附带详细注释,确保100%通过率。示例演示了"HelloWorld"经多次操作变为"HeWorldHeWo"的过程,强调了对各种边界条件的处理要点。
2026-06-29 11:23:01
37
原创 华为OD机试2025C卷-处理器问题[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
本文探讨了华为OD机试中的"处理器问题",这是一个典型的资源调度优化问题。给定M个处理器核心和N个按顺序执行的任务(每个任务有核心需求和执行时间),要求通过合理的任务调度,最小化总完成时间。文章详细分析了题目要求,提出了基于优先队列(堆)的优化解法,能够高效处理任务调度和资源回收。关键点包括:按顺序处理任务、使用最小堆管理正在运行的任务、及时回收已完成任务的资源,以及动态跟踪当前可用核心数。文章还提供了C++、Java、Python3等6种语言的实现代码,适用于不同编程背景的读者。通过这个问题,读者可以学习
2026-06-29 11:22:17
41
原创 华为OD机试2025C卷-乘坐保密电梯[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
本文详细解析了华为OD机试2025C卷"乘坐保密电梯"问题,该题考察经典的电梯调度算法(SCAN算法)。电梯只能单向运行至最远请求楼层后折返,要求计算服务所有请求的最小总移动距离。文章提供了两种解题思路:直接法(去重分类+方向选择)和暴力对比法,重点推荐使用SCAN算法的高效实现。通过将请求楼层分为上行和下行两组并分别排序,计算两种初始方向(先上后下/先下后上)的总距离后取最小值。代码实现涵盖C++、Java、Python等6种语言,均包含详细注释,确保100分通过。示例分析展示了不同初始方向对总距离的影响
2026-06-29 11:21:41
1005
原创 华为OD机试2025C卷-不等式是否满足约束并输出最大差[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
不等式约束系统求解与最大差计算 问题分析 题目要求判断一组不等式约束是否可满足,并计算变量之间的最大可能差值。这是一个典型的差分约束系统问题,可以通过图论中的Bellman-Ford算法来解决。 算法选择 最优解法是使用差分约束系统和Bellman-Ford算法: 将每个不等式转化为图中的边 添加超级源点连接所有节点 运行Bellman-Ford算法检测负环 若无负环,则计算最大差值 代码实现 提供6种语言的实现方案(C++/Java/Python3/C/JavaScript/Go),核心步骤如下: 构建图
2026-06-29 11:21:01
111
原创 华为OD机试2025C卷-VLAN资源池[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
VLAN资源池问题题解 问题概述 题目要求从给定的VLAN资源池字符串中移除指定的VLAN ID,并输出处理后的资源池字符串。VLAN资源池由连续的VLAN区间(如"1-5")和单个VLAN ID(如"15")组成,用逗号连接。 解题思路 输入解析:将资源池字符串按逗号分割,解析每个部分为区间或单个VLAN 区间处理:将每个部分转换为[起点,终点]的区间形式 排序:按区间起点进行升序排序 目标VLAN处理:遍历所有区间,若目标VLAN在区间内则拆分成左右两部分 结果构建:将处理后的区间按格式要求拼接成字符串
2026-06-29 11:19:31
136
原创 华为OD机试2025C卷-IPv4地址转换成整数[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率
IPv4 地址本质上就是一个 32 位整数——点分十进制只是给人看的"UI"。这道题让你手动实现分隔的虚拟 IPv4 到整数的转换,同时加上一堆合法性校验。别看规则多,其实全部是模拟 + 边界判断,没有复杂算法。本文将带你逐一攻破每个校验点,给出 Java / Python3 / C++ / C语言 / JsNode / Go 六种语言的详细注释代码,保证 100% 通过率。一:题目描述题目名称IPv4地址转换成整数题目内容存在一种虚拟 IPv4 地址,由 4 小节组成,每节的范围为 0~255,以。
2026-06-29 11:18:56
40
原创 华为OD机试2025C卷-最长连续子序列[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
文章摘要(150字): 华为OD机试题《最长连续子序列》要求找出和为指定值sum的最长连续子数组长度。关键点在于:1)数据范围小(N≤200),直接暴力双循环即可;2)序列元素均为正数,内层循环可提前终止优化。解题时固定左端点i,向右累加j,当和等于sum时更新最大长度,超过sum则break。示例分析显示,暴力法在保证正确性的同时代码更简洁。提供C++/Java实现,核心逻辑为双重循环+剪枝,时间复杂度O(N²)。题目提醒考生避免过度设计,数据量小时暴力即最优解。
2026-06-28 11:47:05
7
原创 华为OD机试2025C卷-最长回文子串[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
本文介绍了求解最长回文子串的高效中心扩展算法。该算法通过枚举所有可能的回文中心(单字符或双字符),并向两侧扩展寻找最长回文子串,时间复杂度O(N²),空间复杂度O(1)。文章对比了暴力法(O(N³))的不足,提供了C++、Java、Python等6种语言实现,强调易错点如双字符中心处理和边界收缩。中心扩展法因其自然思路和简洁代码成为面试首选方案,而更优的Manacher算法(O(N))因实现复杂不推荐机试使用。
2026-06-28 11:46:30
6
原创 华为OD机试2025C卷-最小栈[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
本文介绍了最小栈的设计与实现,通过双栈结构(数据栈+辅助栈)在O(1)时间内完成push、pop、top及getMin操作。核心思路是辅助栈同步存储每个栈顶对应的最小值:push时压入当前值与辅助栈顶的较小值,pop时双栈同步弹出。代码示例覆盖C++、Java、Python等6种语言,均保持O(1)时间复杂度和O(N)空间复杂度。易错点在于需确保双栈操作同步,避免仅弹出数据栈导致辅助栈状态不一致。
2026-06-28 11:45:57
7
原创 华为OD机试2025C卷-最大子数组和[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
本文介绍了最大子数组和问题的多种解法,重点阐述了Kadane动态规划算法的核心思想与实现。文章从暴力解法逐步优化,详细讲解了O(N)时间复杂度的DP解法,定义了dp[i]为以nums[i]结尾的最大子数组和,并给出状态转移方程。提供了C++、Java、Python等6种编程语言实现代码,分析了常见易错点(如初始化问题),强调DP解题关键在于合理定义状态。全文以简洁清晰的思路,帮助读者理解这一经典动态规划问题。
2026-06-28 11:45:23
6
原创 华为OD机试2025C卷-有效的括号[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
本文介绍了判断括号字符串有效性的经典算法问题,通过栈结构实现高效匹配。文章提供了五种编程语言的实现代码(C++、Java、Python、C、JavaScript、Go),核心思路是遇到左括号入栈,遇到右括号时检查栈顶是否匹配。算法时间复杂度O(N),空间复杂度O(N),是华为OD机试高频考点,适用于包含括号匹配特征的各类问题。
2026-06-28 11:44:48
6
原创 华为OD机试2025C卷-用栈实现队列[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
本文介绍了如何用两个栈实现队列的基本操作(push、pop、peek)。核心思路是利用两个栈(inStack和outStack)的两次翻转(LIFO→FIFO)来模拟队列行为: push操作:直接压入inStack pop/peek操作:若outStack为空,则将inStack元素全部倒入outStack(完成反转),再操作outStack栈顶 复杂度:均摊O(1),每个元素仅进出各栈一次 易错点:outStack非空时禁止倒入,否则破坏顺序 提供C++/Java/Python等6种语言代码实现,强调"负
2026-06-28 11:44:14
6
原创 华为OD机试2025C卷-无重复字符的最长子串[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
文章摘要 题目要求找出字符串中不包含重复字符的最长子串长度。作者从暴力法(O(N³))入手,逐步优化至滑动窗口(O(N))的最优解: 暴力法:三重循环枚举所有子串并用Set判重,效率低(N=30000时27万亿次操作) 优化暴力法:固定起点时遇到重复立即终止,降为O(N²)(9亿次操作,仍可能超时) 滑动窗口:双指针维护无重复窗口,右指针扩展时左指针被动收缩,每个字符仅处理两次,实现O(N)时间复杂度 关键点:滑动窗口通过记录字符最后出现位置,在发现重复时直接调整左边界,避免重复计算。最终代码仅需一次遍历即
2026-06-28 11:43:40
7
原创 华为OD机试2025C卷-盛最多水的容器[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
本文介绍了「盛最多水的容器」问题的双指针解法。题目要求在给定高度数组中找到两条线,使其与x轴构成的容器能容纳最多水。解题关键在于使用双指针从两端向中间移动,每次移动较矮的一边以寻求更大面积,时间复杂度O(n)。文章对比了暴力解法的不足,提供了C++、Java、Python等6种语言实现代码,并标注易错点(如移动策略和面积计算)。最后强调双指针问题的核心在于确定排除选项的条件,该解法通过移动矮边来高效缩小搜索范围。
2026-06-28 11:43:09
6
原创 华为OD机试2025C卷-删除链表的倒数第N个节点[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
本文介绍了使用快慢指针法高效删除链表倒数第N个节点的算法。关键步骤是:创建哑节点处理边界情况,快指针先走N+1步,随后快慢指针同步移动,当快指针到末尾时慢指针正好指向待删节点的前驱。文章提供了C++、Java、Python等5种语言的实现代码,均采用O(N)时间复杂度和O(1)空间复杂度完成操作,适用于华为OD等编程面试场景。
2026-06-28 11:42:38
4
原创 华为OD机试2025C卷-三数之和[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
本文介绍了解决三数之和问题的算法思路和代码实现。通过排序+双指针将时间复杂度从O(N³)优化到O(N²),重点处理了重复元素问题。提供了C++、Java、Python、C和JavaScript五种语言的代码实现,均采用固定第一个数后双指针查找的策略,并利用排序后的有序特性进行去重。核心在于排序预处理和双指针移动时跳过重复值,确保结果唯一且高效。
2026-06-28 11:41:57
5
原创 华为OD机试2025C卷-全排列[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
本文介绍了全排列问题的回溯解法,核心思路是通过递归和状态恢复枚举所有可能排列。文章包含题目描述、解题思路和5种编程语言的代码实现(C++/Java/Python/C/JS)。回溯算法使用used数组标记已选元素,递归构建路径,完成后撤销选择恢复状态。代码模板适用于所有回溯问题,是算法学习的基础题型之一。
2026-06-28 11:41:25
6
原创 华为OD机试2025C卷-爬楼梯[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
本文介绍了经典的爬楼梯问题,通过动态规划方法高效求解。题目要求计算爬到n阶楼梯的不同方法数(每次可迈1或2步)。关键点在于发现状态转移方程f(n)=f(n-1)+f(n-2),即斐波那契数列。最优解法采用O(1)空间的滚动变量法,只需维护前两个状态值。文章提供了C++、Java、Python等6种语言实现代码,并指出边界条件(n=0/1时返回1)和递归解法会超时的问题。该问题生动展示了动态规划的核心思想:将当前问题分解为子问题的组合。
2026-06-28 11:40:48
17
原创 华为OD机试2025C卷-两数之和[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
《两数之和:从暴力到哈希表的最优解》摘要: LeetCode经典第一题"两数之和"考察数组查找与哈希表应用。题目要求在数组中找出和为target的两个数并返回下标。本文详解两种解法:暴力法(O(N²)时间)和哈希表优化法(O(N)时间)。哈希表通过存储值到索引的映射,实现O(1)时间查找互补数,核心思路是"边遍历边检查"。代码涵盖C++/Java/Python等6种语言实现,并指出易错点:1)必须先查后存避免自匹配;2)输出要求是下标而非数值。文章强调哈希表将查找复杂度从O(N)降为O(1)的核心价值,是处
2026-06-28 11:40:14
16
原创 华为OD机试2025C卷-接雨水[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
本文介绍了解决“接雨水”问题的四种方法:暴力法(O(N²)时间)、按行求水、动态规划预处理(O(N)时间+O(N)空间)以及最优的双指针解法(O(N)时间+O(1)空间)。重点分析了双指针的核心思路——通过左右指针向中间移动,每次处理较矮的一侧,确保当前位置的接水量由该侧的最大高度决定。文章提供了C++、Java、Python、C和JavaScript五种语言的实现代码,帮助读者深入理解这一经典算法问题。
2026-06-28 11:39:40
16
原创 华为OD机试2025C卷-合并区间[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
本文介绍了合并区间问题的两种解法:暴力法(O(N²))和排序+贪心法(O(NlogN)),重点讲解了最优的排序+贪心策略。通过将区间按起点排序后依次合并相邻重叠区间,实现高效合并。文章提供了C++、Java、Python、C、JavaScript和Go六种语言的代码实现,展示了核心排序和合并逻辑。该问题在华为OD机试中频繁出现,掌握此算法可有效应对类似区间合并问题。
2026-06-28 11:38:56
43
原创 华为OD机试2025C卷-反转链表[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
本文介绍了反转链表的经典算法,通过三指针法(prev、cur、next)实现高效反转。文章提供了C++、Java、Python、C、JavaScript和Go等多种语言的实现代码,并分析了时间复杂度为O(N)和空间复杂度为O(1)的优异性能。特别提醒易错点:在反转指针前必须保存next节点,否则会丢失后续链表信息。该算法是链表操作的基础,掌握后能轻松应对相关机试题。
2026-06-28 11:38:21
162
原创 华为OD机试2025C卷-二分查找[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
这篇文章介绍了二分查找算法的两种经典模板实现,重点讲解了边界条件的处理技巧。作者通过清晰的区间定义(闭区间 [l, r])和防溢出写法(mid = l+(r-l)/2),解决了该算法常见的易错点。文章提供了C++、Java、Python等6种语言的完整代码实现,分析了时间复杂度和空间复杂度,并指出两个典型错误:mid计算溢出和循环条件错误。最后强调理解区间定义比死记模板更重要,适合准备面试的开发者阅读学习。 (字数:150字)
2026-06-28 11:37:47
41
原创 华为OD机试2025C卷-二叉树的最大深度[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
本文介绍了求解二叉树最大深度的两种方法:DFS递归和BFS层序遍历。DFS递归简洁高效,核心逻辑为depth = 1 + max(left_depth, right_depth);BFS通过队列逐层计数实现。文章提供了C++、Java、Python、C和JavaScript五种语言的完整实现代码,涵盖二叉树构建与深度计算。输入按层序遍历格式(如3,9,20,null,null,15,7),输出最大深度(示例结果为3)。适合面试准备与算法学习参考。
2026-06-28 11:37:09
43
原创 华为OD机试2025C卷-对称二叉树[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
文章摘要: 题目要求判断给定二叉树是否为对称结构(镜像对称)。核心思路是通过递归比较左右子树:两子树根节点值相同,且左子树的左节点与右子树的右节点、左子树的右节点与右子树的左节点均对称。输入为层序遍历序列(逗号分隔,null表示空节点),输出true/false。代码示例覆盖C++、Java、Python等语言,均采用递归实现,时间复杂度O(n)。例如,输入1,2,2,3,4,4,3输出true,而1,2,2,null,3,null,3输出false。
2026-06-28 11:36:36
38
原创 华为OD机试2025C卷-岛屿数量[100分]( Java _ Python3 _ C++ _ C语言 _ JsNode _ Go)实现100%通过率
岛屿数量问题解析(DFS/BFS模板题) 问题描述 计算由'1'(陆地)和'0'(水)组成的二维网格中的岛屿数量,相邻陆地(水平/垂直方向)组成一座岛。 解决思路 核心算法:遍历网格,遇到'1'时启动DFS/BFS淹没整座岛并计数+1 关键操作:将访问过的'1'标记为'0'避免重复计数 方向处理:四方向移动(上下左右) 代码实现 提供C++/Java/Python等6种语言的DFS实现,均采用相似逻辑: 读取输入矩阵 双重循环遍历每个格子 发现'1'时计数并DFS淹没相连陆地 复杂度分析 时间复杂度:O(M
2026-06-28 11:34:24
39
【计算机图形学】基于C语言的动态爱心图案生成算法实现:控制台彩色进度条与数学函数绘图综合设计
2025-11-30
游戏开发基于C++的飞机大战游戏设计与实现:控制台交互式射击游戏系统开发
2025-11-30
接球游戏4232.txt
2025-11-30
游戏开发基于C++的狼人杀游戏逻辑实现:多人角色分配与夜间行动模拟系统设计
2025-11-30
【计算机图形学】基于C++的三维玫瑰花渲染算法实现:利用z-buffer与参数方程绘制彩色立体花朵模型
2025-11-30
游戏开发基于EasyX的C++射击游戏设计:双角色弹幕对抗系统实现
2025-11-30
游戏开发基于C语言的角色扮演游戏设计:勇者救公主游戏系统的实现与功能分析
2025-11-30
游戏开发基于C++的贪吃蛇游戏设计与实现:控制台环境下蛇移动逻辑与碰撞检测机制研究
2025-11-30
编程教学基于C++的打字练习游戏设计:通过随机字符输入提升用户键盘反应速度与准确率
2025-11-30
dev c++跑酷.txt
2025-11-30
Python 如何读取大 CSV 文件
2025-09-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅