自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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%通过率

循环结束后,

2026-06-29 11:28:26 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语言的动态爱心图案生成算法实现:控制台彩色进度条与数学函数绘图综合设计

内容概要:本文是一段C语言程序代码,通过调用Windows系统下的控制台功能实现了一个彩色动态进度条和一个由字符组成的“爱心”图形动画。程序首先展示一个模拟加载过程的彩色进度条,随后绘制出一个数学方程定义的心形图案,并在图案下方输出“Hello World!”字样。核心实现包括利用数学函数判断心形区域、随机颜色输出以及屏幕刷新控制。; 适合人群:具备基本C语言编程能力,对图形绘制和控制台操作感兴趣的初学者或编程爱好者。; 使用场景及目标:①学习如何在控制台中实现动态视觉效果;②理解数学公式在图形生成中的应用;③掌握C语言中颜色输出、缓冲区刷新和延迟函数的使用方法;④用于教学演示或创意编程展示。; 阅读建议:建议读者结合代码逐步调试运行,观察每行输出的效果变化,深入理解坐标遍历、条件判断与图形映射的关系,同时可尝试修改参数如颜色、字符或方程来扩展视觉效果。

2025-11-30

游戏开发基于C++的飞机大战游戏设计与实现:控制台交互式射击游戏系统开发

内容概要:本文提供了一个基于C++和Windows API实现的“飞机大战”游戏升级版源码解析,详细展示了游戏的核心逻辑与功能实现,包括战机控制、子弹发射、敌机生成与移动、碰撞检测、得分系统及游戏状态管理。通过面向对象的设计方法,使用Game类封装游戏元素和行为,并利用控制台绘图技术实现可视化界面。代码中还包含了颜色设置、光标隐藏、坐标定位等辅助功能,增强了用户体验。游戏支持不同难度选择,具备

2025-11-30

接球游戏4232.txt

内容概要:本文提供了一个基于C++和图形库实现的简单接球游戏源码,通过定义球的结构体、盒子位置、用户输入控制及游戏逻辑,实现了球的随机生成、下落运动、碰撞检测与得分计算等功能。游戏界面分为左侧游戏区和右侧信息显示区,包含倒计时、得分统计和操作提示。程序使用EasyX图形库进行绘图和事件处理,通过主循环不断更新画面并响应键盘输入,支持左右移动接球盒或按ESC退出游戏,最终显示玩家得分并结束。; 适合人群:具备基本C++编程能力,熟悉流程控制与结构体的学生或初学者。; 使用场景及目标:①学习图形化编程基础与游戏开发逻辑;②理解实时交互系统的设计思路,如按键响应、画面刷新与碰撞判定;③掌握简单游戏的架构设计与时间控制机制; 阅读建议:建议结合EasyX图形库文档运行并调试代码,逐步理解各模块功能,可尝试扩展功能如增加难度、音效或优化界面布局以加深理解。

2025-11-30

游戏开发基于C++的狼人杀游戏逻辑实现:多人角色分配与夜间行动模拟系统设计

内容概要:本文是一段C++编写的“狼人杀”游戏模拟程序代码,主要实现了15人局的游戏逻辑,包含杀手、预言家、平民和法师四种角色。系统随机分配玩家身份,并模拟每晚的角色行动(如杀手杀人、预言家查验、法师使用技能),随后进入白天投票环节,由AI控制非玩家角色进行投票,最终根据存活情况判断胜负。游戏过程中展示了身份分配、技能使用、投票机制与胜负判定等核心流程。; 适合人群:具备基本C++编程能力并对游戏逻辑开发感兴趣的学习者或开发者。; 使用场景及目标:①学习多角色回合制游戏的基本架构设计;②理解随机数运用、数组状态管理与简单AI行为模拟的实现方式;③可用于教学演示或作为小型游戏项目的参考模板。; 阅读建议:建议结合代码逐步调试运行,观察各角色执行顺序与状态变化,重点关注循环控制变量、条件分支及数组标记的使用,以深入掌握游戏流程控制逻辑。

2025-11-30

【计算机图形学】基于C++的三维玫瑰花渲染算法实现:利用z-buffer与参数方程绘制彩色立体花朵模型

内容概要:本文是一段使用C++语言编写的绘制3D玫瑰花的程序代码,结合了图形库(graphics.h)与数学算法,通过定义结构体DOT存储三维坐标和颜色信息,利用复杂的三角函数和参数方程计算花瓣、花萼、叶片和花茎上每个点的位置与色彩。程序采用z-buffer技术优化渲染效果,确保前后层次正确,最终在绘图窗口中呈现出一朵具有立体感和渐变色彩的动态玫瑰花。代码包含随机采样、视角变换和逐像素绘制等关键步骤,展现了计算机图形学中基本的建模与渲染原理。; 适合人群:具备C++编程基础、了解基本图形学概念的大中专学生或编程爱好者,以及对视觉艺术与数学结合感兴趣的开发者。; 使用场景及目标:①学习如何用数学公式生成复杂自然形态;②理解z-buffer机制在三维显示中的应用;③掌握在简单图形库环境下实现3D投影与着色的技术;④用于教学演示或创意编程项目参考。; 阅读建议:此资源以代码为核心,建议读者结合注释逐步调试运行,观察不同参数对图像的影响,并尝试修改函数表达式或颜色映射方式以实现个性化效果,从而深入理解算法背后的几何与视觉原理。

2025-11-30

游戏开发基于EasyX的C++射击游戏设计:双角色弹幕对抗系统实现

内容概要:本文提供了一个基于C++和EasyX图形库实现的简单射击游戏源码,展示了面向对象的设计思想与基本的游戏循环逻辑。游戏中包含玩家坦克、Boss敌人及其各自发射的子弹类,通过坐标管理、碰撞检测、键盘输入响应、图形绘制和血条显示等功能实现交互式对战。玩家通过W/S键控制上下移动,K键发射子弹攻击Boss,双方生命值归零后判定胜负并结束游戏。代码结构清晰,运用了类封装、定时器控制移动与攻击频率、屏幕刷新与图形擦除等核心技术。; 适合人群:具备C++基础和初步图形编程经验的开发者,适合学习游戏开发入门的学生或编程爱好者。; 使用场景及目标:①理解基于EasyX的简单2D游戏开发流程;②掌握游戏主循环、碰撞检测、用户输入处理等核心机制;③学习如何用面向对象方法组织游戏实体;④作为教学示例用于实践小型项目开发。; 阅读建议:建议结合EasyX环境运行并调试代码,逐步跟踪各对象的状态变化,深入理解绘图与逻辑更新的配合方式,可尝试扩展功能如增加难度、添加音效或优化子弹系统。

2025-11-30

游戏开发基于C语言的角色扮演游戏设计:勇者救公主游戏系统的实现与功能分析

内容概要:本文档是一段C语言编写的文本冒险类游戏代码,名为《勇者游戏》,玩家扮演一名勇者,在虚拟世界“苍穹世界”中通过探索、战斗、购买装备与使用道具等方式提升角色能力,最终目标是击败使徒并解救被绑架的罗茜公主。游戏中包含角色属性(如攻击力、防御力、生命值)、等级经验系统、随机遭遇战斗机制、物品使用与买卖系统,并支持外挂模式(输入特定名称“圣战斗士”可获得无敌属性)。玩家可在酒吧、酒店、商会、拍卖行和野外等场景间切换,进行休息、购物、对话、战斗等活动。战斗采用回合制,结合随机数判定攻击效果和逃跑成功率,击败敌人可获得金钱、经验和稀有物品。; 适合人群:具备基础C语言编程知识并对游戏开发感兴趣的初学者或编程爱好者;适合希望理解小型项目结构、逻辑控制与基本数据管理的学习者。; 使用场景及目标:①学习如何用C语言实现简单的游戏逻辑与流程控制;②理解结构体、函数模块化、随机数应用、用户交互处理等编程技术的实际运用;③可用于教学演示或作为小型游戏开发的参考模板; 阅读建议:建议结合代码逐步调试运行,跟踪变量变化与函数调用流程,深入理解状态管理和游戏循环机制,同时可尝试扩展功能如新增地图、怪物或任务系统以提升实践能力。

2025-11-30

游戏开发基于C++的贪吃蛇游戏设计与实现:控制台环境下蛇移动逻辑与碰撞检测机制研究

内容概要:本文提供了一个用C++编写的贪吃蛇游戏实现代码,涵盖了游戏的核心逻辑与功能模块,包括地图绘制、蛇的移动与增长、食物随机生成、碰撞检测(撞墙和自撞)、方向控制以及游戏难度调节机制。通过调用Windows API实现光标隐藏和定位,优化控制台显示效果,并利用定时循环控制蛇的移动速度,提升游戏体验。代码结构清晰,注释明确,便于理解游戏运行流程和技术细节。; 适合人群:具备基本C++编程能力、熟悉控制台操作和面向过程编程的初学者或中级开发者。; 使用场景及目标:①学习经典小游戏的设计思路与实现方式;②掌握控制台程序开发技巧,如光标控制、键盘输入响应、实时刷新等;③理解游戏主循环、状态更新与用户交互的基本架构; 阅读建议:建议读者结合代码逐步调试运行,观察每一步的执行效果,深入理解各函数的作用,并可在此基础上进行扩展练习,如增加计分系统、音效、图形界面等高级功能。

2025-11-30

游戏开发基于C++的飞机大战游戏设计与实现:控制台交互式空战射击系统开发

游戏开发基于C++的飞机大战游戏设计与实现:控制台交互式空战射击系统开发

2025-11-30

编程教学基于C++的打字练习游戏设计:通过随机字符输入提升用户键盘反应速度与准确率

内容概要:本文提供了一个基于C++语言编写的简单打字小游戏源码,通过控制台实现字符从左到右移动的效果,玩家需在字符到达屏幕右侧前正确输入对应字母,否则视为失误。程序使用了随机数生成、键盘输入监听、光标回退与即时显示等技术,利用Windows平台特有的Sleep、_kbhit和_getch函数实现延时和非阻塞式按键检测。游戏支持实时计分,统计正确输入和失败次数,并可在游戏中按ESC键安全退出。代码结构清晰,注释明确,适合初学者理解基本的游戏逻辑与控制流程。; 适合人群:具备基础C++编程能力、熟悉基本语法和标准库函数的初学者,或对小型控制台项目感兴趣的开发者; 使用场景及目标:①学习控制台交互式程序的设计与实现;②理解随机字符生成、实时输入响应与游戏状态控制机制;③作为C++课程设计或编程练习的参考案例; 阅读建议:此资源为完整可运行的C++程序,建议在支持Windows API的编译环境下调试运行,结合代码逐步跟踪执行流程,重点关注循环控制、字符刷新与用户输入处理部分,以深入掌握其实现原理。

2025-11-30

dev c++跑酷.txt

内容概要:本文档是一份使用C++编写的控制台跑酷游戏源代码,基于Dev-C++平台开发,利用Windows API实现图形界面与用户交互。游戏中玩家操控角色在限定区域内移动、跳跃,躲避障碍并攻击敌人,包含多种技能效果如火焰、水流、风暴和雷电等。程序实现了基本物理运动、碰撞检测、敌人AI、BOSS战斗机制、道具系统及多阶段关卡设计。通过宏定义与函数模块化管理地图绘制、角色行为和游戏状态更新,展现了较为完整的游戏循环逻辑。; 适合人群:具备C++基础语法知识,熟悉控制台编程与简单Windows API调用的初学者或中级开发者,对游戏开发感兴趣的编程学习者。; 使用场景及目标:①学习如何在无图形库支持下使用字符绘制实现简单动画与界面布局;②理解游戏主循环、状态机、碰撞响应与敌我交互的设计思路;③掌握键盘输入处理、定时刷新机制及基础面向过程的代码组织方式。; 阅读建议:建议结合Dev-C++环境运行并逐步调试代码,观察各函数执行流程,重点关注Map、Move、Boss行为控制等核心模块,尝试修改参数以理解其作用,从而深入掌握控制台游戏的实现原理。

2025-11-30

游戏开发基于C++的2048游戏逻辑实现:控制台版滑动合并算法与棋盘管理设计

游戏开发基于C++的2048游戏逻辑实现:控制台版滑动合并算法与棋盘管理设计

2025-11-30

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除