CodeClimb
码龄2年
求更新 关注
提问 私信
  • 博客:163,126
    163,126
    总访问量
  • 137
    原创
  • 3,402
    粉丝
  • 0
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
加入CSDN时间: 2024-11-25

个人简介:路虽远,行则将至!

博客简介:

CodeClimb的博客

查看详细资料
个人成就
  • 获得2,972次点赞
  • 内容获得8次评论
  • 获得2,566次收藏
  • 代码片获得1,724次分享
  • 博客总排名2,325,086名
创作历程
  • 94篇
    2025年
  • 43篇
    2024年
成就勋章
TA的专栏
  • 算法题 2025华为od、(A+B+C+D+E 卷)收录分享
    付费
    133篇
  • python基础 保姆式讲解
  • 纯小白编程入门教程(新手必看)
    2篇
  • 计算机相关操作技巧(新手必看)
    3篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 1

TA参与的活动 0

创作活动更多

【多重好礼】鸿蒙心迹 · 开发录原创征稿活动

鸿蒙开发者的实战经验,值得被记录。从踩坑排查到项目复盘,从工具脚本到学习笔记,每一段真实的开发经历,都是社区最宝贵的技术资产。「鸿蒙心迹 · 开发录」正式启航,不限主题、随时可写,只要是鸿蒙开发相关的真实经验都欢迎投稿。 本活动为 [HarmonyOS 7.0 创新内容共创季](https://builderx.csdn.net/activity-site/harmonyos/activity2026)双轨征文之一,与[「共创季 · 稿事节」](https://harmonyosdev.csdn.net/6a97f0de2b83d06f0ecadec5.html)深度征文互补——「稿事节」写深度技术长文,「开发录」写日常开发实战笔记。 「开发录」每月一期,12月截止,本季共三期,投稿即有机会获得京东卡、CSDN博客流量券、亿万Token、社区定制周边好礼!

126人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

【华为OD-2025C卷-013 打印文件 100分(python、java、c++、js、c)】

本文介绍了如何模拟5台打印机的打印过程。每台打印机有自己的待打印队列,文件按优先级(1~10)排序,数字越大优先级越高。如果优先级相同,则按进入队列的顺序打印。输入包含两种事件:“IN P NUM”表示将优先级为NUM的文件放入打印机P的队列,“OUT P”表示打印机P打印一个文件。输出每次“OUT P”事件打印的文件编号,若队列为空则输出“NULL”。文章提供了Python和Java的解法,使用队列和自定义排序来实现文件的优先级处理。Python使用defaultdict(deque)管理队列,Java使
原创
博文更新于 2025.08.28 ·
985 阅读 ·
15 点赞 ·
0 评论 ·
7 收藏

【华为OD-C卷-019 对称字符串 100分(python、java、c++、js、c)】

题目摘要 这道题考察对称字符串的生成规律。给定递推规则:第i个字符串等于第i-1个字符串取反后拼接第i-1个字符串,初始字符串为"R"。要求根据输入的n和k,输出第n个字符串的第k个字符(0开始索引)。 关键点: 字符串长度呈指数增长,第n个字符串长度为2^(n-1) 不能直接生成字符串,需利用递归或迭代方法快速定位字符 通过二分法判断k在左半区(取反)还是右半区(原样) 解法思路: 使用二分法逐步缩小范围,每次判断k在左半区还是右半区 若在左半区,翻转颜色标志;若在右半区,调整k的索引
原创
博文更新于 2025.08.21 ·
215 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【华为OD-C卷-020 -关联端口组合并 100分(python、java、c++、js、c)】

文章摘要 题目要求合并存在共同端口的端口组,每组保留唯一端口并按升序排列。输入为M个端口组,每组是逗号分隔的整数数组。若两组有2个以上相同端口则合并。输出合并后的二维数组,保持原始输入顺序。 解题思路: 读取输入,构建端口组列表,记录原始顺序和数字集合。 循环扫描所有组对,若交集≥2则合并(取并集),更新代表顺序号为较小值。 重复合并直到无变化,按顺序号排序后输出。 关键点:使用集合操作高效处理合并,维护原始顺序,最终排序输出。时间复杂度约为O(m³L),空间O(mL)。
原创
博文更新于 2025.08.21 ·
404 阅读 ·
6 点赞 ·
0 评论 ·
0 收藏

【华为OD--030 寻找关键钥匙 100分(python、java、c++、js、c)】

箱子 N 数量满足 1 ≤ N ≤ 10000, s 长度满足 0 ≤ s.length ≤ 50, 密码为仅包含小写字母的升序字符串,且不存在重复字母, 密码 K 长度1 ≤ K.length ≤ 26。字符串预处理:过滤非字母字符,将字母转换为小写,并按字母顺序排序。比较 key 的排序结果和当前箱子过滤后排序的结果是否相同。输出结果:根据匹配结果输出第一个匹配容器的索引或 -1。对每个箱子,过滤出其中的字母字符,转换为小写后排序。如不存在符合要求的密码箱,则返回 -1。对 key 按字母排序。
原创
博文更新于 2025.08.21 ·
935 阅读 ·
10 点赞 ·
2 评论 ·
9 收藏

【华为OD--026 日志采集系统 100分(python、java、c++、js、c)】

遍历数组逐个更新 dp、penalty 和 result,同时检查 dp 是否达到 100,若达到则停止计算。delay[i] 通过调用 calculate_delay 函数计算得到,表示当前位置的累积延迟。通过 dp[i] - penalty[i] 计算当前位置的得分,即正向累积和减去惩罚值。dp[i] 表示第 i 个位置的累计和,但是有一个上限,不能超过 100。表示当前位置的累计惩罚值,它等于前一个位置的惩罚值加上前一个位置的累积和。初始化数组的第一个位置的 dp 和 result。
原创
博文更新于 2025.08.21 ·
765 阅读 ·
14 点赞 ·
0 评论 ·
11 收藏

【华为OD--025 机器人活动区域 100分(python、java、c++、js、c)】

复杂度:假设矩阵的大小为 rows x cols,每个点最多被访问一次,因此时间复杂度是 O(rows * cols),即 O(n),其中 n 是矩阵中的元素个数。BFS 的实现:使用队列 queue 来进行 BFS,每次从队列中取出一个元素,检查其四个方向的相邻元素,如果满足条件(未访问且差值小于等于 1),将其加入队列。广度优先搜索 (BFS):我们可以从矩阵中的每个未访问的元素开始,使用 BFS 遍历所有与其差值小于等于 1 的相邻元素,找出一个连通区域,计算该区域的大小。
原创
博文更新于 2025.08.21 ·
1223 阅读 ·
19 点赞 ·
0 评论 ·
26 收藏

【华为OD-C卷-024 MVP争夺战 100分(python、java、c++、js、c)】

该问题的目标是将分数数组 pts 分成最多 mins 个队伍,使得每个队伍的分数尽可能相等,最终返回每个队伍的最大可能分数。检查是否可以通过回溯算法将分数分配到 t 个队伍中,使每队总分为 targetScore。从最多 mins 个队伍开始尝试,逐步减少队伍数量,直到找到最大可能分数。从最多 t 个队伍开始尝试,将总分均分到 t 个队伍中。如果可以整除,目标分数为 sum / p,尝试分配分数。如果当前队伍的分数加上当前分数大于目标分数,则直接跳过。使用递归回溯分配分数,尝试将每个分数放入某个队伍中。
原创
博文更新于 2025.08.21 ·
1187 阅读 ·
21 点赞 ·
0 评论 ·
9 收藏

【华为OD--022 箱子之字形摆放 100分(python、java、c++、js、c)】

本文将介绍如何将一批箱子(字符串形式)按“之”字形顺序摆放在指定宽度的空地上。输入由字符串和宽度组成,如"ABCDEFG 3";输出为按三行排列的结果,如"AFG
BE
CD"。 解题思路: 将输入分解为字符串和宽度参数 创建与宽度相同的行数组 使用方向变量控制字符填充方向(上下交替) 遍历字符串,将字符按之字形填充到对应行 最后逐行输出结果 Python解法通过维护当前行位置和方向实现,边界时反转方向;Java解法使用二维数组模拟网格填充;C解法动态分配行内存并
原创
博文更新于 2025.08.21 ·
873 阅读 ·
5 点赞 ·
0 评论 ·
13 收藏

【华为OD--018 寻找密码 100分(python、java、c++、js、c)】

对每个密码检查其前缀,最坏情况下,检查所有密码的前缀的复杂度是 O(n * m),其中 m 是平均密码长度。逆向遍历:由于我们需要找出最长的密码,因此可以从最长的密码开始检查(即从 ps 列表的最后一个元素开始检查)。对每个密码,最坏情况下需要检查它的所有前缀,检查每个前缀的时间复杂度为 O(m),其中 m 是密码的最大长度。前缀检查:对于每个密码,需要检查它的所有前缀,最坏情况下每个密码需要检查 O(m) 次,其中 m 是密码的最大长度。前缀检查:对每个密码,检查它的所有前缀是否也存在于密码列表中。
原创
博文更新于 2025.08.21 ·
1323 阅读 ·
17 点赞 ·
0 评论 ·
26 收藏

【华为OD-C卷-001 AI处理器组合100分(python、java、c++、js、c)】

0 <= array.length <= 8 0 <= array[i] <= 7 num in [1, 2, 4, 8] 输出描述 输出为组合列表,当array=[0,1,4,5,6,7],num=1 时,输出为[[0], [1]]。初始化与分组:首先将输入数组 arr 排序,然后将数组中的元素分成两个子列表 link1 和 link2,其中 link1 包含所有小于4的元素,link2 包含所有大于等于4的元素。任务申请1个处理器。num = 1:选择长度为 1、2、3 或 4 的组合进行调度。
原创
博文更新于 2025.08.21 ·
1143 阅读 ·
36 点赞 ·
0 评论 ·
14 收藏

【华为OD-C卷-011 最小的调整顺序次数、特异性双端队列 100分(python、java、c++、js、c)】

​head add x” 表示从头部添加数据 x,​"​tail add x" 表示从尾部添加数据x, 另外 n 行为移出数据指令,指令为:“remove” 的形式,表示移出1个数据;每次执行remove命令时,如果队列未排序(head add会导致队列无序),需要对队列进行排序,并统计排序次数。每次执行remove命令时,确保队列头部元素为指定的值current_remove,否则需要调整队列以满足条件。如果在执行remove时队列无序,则需要排序(adjustments计数加1),并恢复有序状态。
原创
博文更新于 2025.08.21 ·
1401 阅读 ·
18 点赞 ·
0 评论 ·
8 收藏

【华为OD- -015 统计匹配的二元组个数 100分(python、java、c++、js、c)】

第二行输入数组B的长度N,第三行输入数组A的值,第四行输入数组B的值。
原创
博文更新于 2025.08.21 ·
679 阅读 ·
5 点赞 ·
0 评论 ·
9 收藏

【华为OD--012 狼羊过河 100分(python、java、c++、js、c)】

目标:从起始状态 (m, n, 0, 0)(m 是羊的数量,n 是狼的数量)开始,通过合法的船次转移,最终达到 (0, 0, m, n)(所有羊和狼都到达对岸)所需的最小步骤数。状态变化是递归进行的,每次通过递归检查合法的羊和狼的搬运数量。每个岸上必须遵守羊的数量不能少于狼的数量,即如果岸上有狼且羊不足,狼会攻击羊。在当前岸和对岸,不能让狼的数量超过羊的数量,除非羊的数量为零。每个岸上的羊和狼必须遵守狼不多于羊的规则,除非没有羊。每个岸上的羊和狼必须遵守狼不多于羊的规则,除非没有羊。
原创
博文更新于 2025.08.21 ·
1622 阅读 ·
39 点赞 ·
0 评论 ·
28 收藏

【华为OD-C卷-009 字母组合 100分(python、java、c++、js、c)】

生成所有字母组合: 由于输入的数字串 nums 可能对应多个字母,我们需要生成所有可能的字母组合。过滤条件: 在生成每一个新的字母组合时,判断这个组合是否包含屏蔽字符串中的所有字符。每次从队列中取出一个当前的组合(初始为空字符串""),然后将每个字母组合进来,形成新的组合,继续加入队列。如果某一位的字母已经到达其字母集合的最后一个字母,则回退到该集合的第一个字母,并递增上一位。使用一个 StringBuilder 来拼接当前组合,并将其加入结果列表 result,如果该组合不包含屏蔽字符串中的所有字符。
原创
博文更新于 2025.08.21 ·
1609 阅读 ·
28 点赞 ·
0 评论 ·
31 收藏

【华为OD-007 租车骑绿道 100分(python、java、c++、js、c)】

如果这两个人的体重和小于等于 m,则可以将他们放在同一辆车上,此时将 i 指针向右移动,j 指针向左移动;排序操作的时间复杂度是 O(n log n),而双指针扫描的时间复杂度是 O(n)。排序的时间复杂度是 O(n log n),双指针扫描的时间复杂度是 O(n)。排序的时间复杂度是 O(n log n),双指针扫描的时间复杂度是 O(n)。排序的时间复杂度是 O(n log n),双指针扫描的时间复杂度是 O(n)。排序后,我们可以利用双指针方法,高效地将最轻和最重的人配对,尽量减少车的数量。
原创
博文更新于 2025.08.21 ·
1234 阅读 ·
35 点赞 ·
0 评论 ·
16 收藏

【华为OD-006 不含101的数 100分(python、java、c++、js、c)】

数字DP 的特点:通过将数字转化为二进制数组,用递归的方法枚举可能的二进制组合,同时使用记忆化 (dp) 减少重复计算。最终计算:分别计算 [1, right] 和 [1, left-1] 的符合条件的数字个数,差值即为结果。最终结果:分别计算 [1, r] 和 [1, l-1] 范围内符合条件的数字个数,二者相减即为结果。最终结果:分别计算 [1, R] 和 [1, L-1] 的符合条件的数字个数,二者相减即为答案。使用数字DP方法,通过逐位处理二进制数字,动态计算符合条件的数字个数。
原创
博文更新于 2025.08.21 ·
1215 阅读 ·
8 点赞 ·
0 评论 ·
28 收藏

【华为OD-C卷 -004 获得完美走位 100分(python、java、c++、js、c)】

在第一人称射击游戏中,玩家通过键盘的A、S、D、W四个按键控制游戏人物分别向左、向后、向右、向前进行移动,从而完成走位。假设玩家每按动一次键盘,游戏任务会向某个方向移动一步,如果玩家在操作一定次数的键盘并且各个方向的步数相同时,此时游戏任务必定会回到原点,则称此次走位为完美走位。现给定玩家的走位(例如:ASDA),请通过更换其中一段连续走位的方式使得原走位能够变成一个完美走位。其中待更换的连续走位可以是相同长度的任何走位。请返回待更换的连续走位的最小可能长度。如果原走位本身是一个完美走位,则返回0。
原创
博文更新于 2025.08.21 ·
1145 阅读 ·
13 点赞 ·
0 评论 ·
9 收藏

【华为OD-003 字符串重新排序 字符串重新排列 100分(python、java、c++、js、c)】

标准化单词:首先对每个单词中的字母进行排序。这样不同字母顺序的单词将被视为相同(例如,“abc”和“cab”会都被标准化为“abc”)。这样不同字母顺序的单词被视为相同,例如,“abc”和“cab”都应该视为“abc”。长度排序:如果两个单词的频率相同,按单词的长度,从短到长排序。频率排序:单词的排序首先依赖于它们的出现频率,从高到低排序。长度排序:如果两个单词的频率相同,按单词的长度从短到长排序。长度:出现次数相同的情况下,按单词的长度从短到长排序。如果多个单词的频率相同,则按单词的长度从短到长排序。
原创
博文更新于 2025.08.21 ·
1121 阅读 ·
12 点赞 ·
0 评论 ·
11 收藏

【华为OD-002 寻找链表的中间结点 100分(python、java、c++、js、c)】

在快慢指针相遇后,重新设置一个指针从起始节点开始,每次一步一步前进,另一个指针不动,最终会在环的入口节点相遇。在相遇之后,重新设置一个指针从链表的起始节点开始,每次一步一步前进,另一个指针不动,最终会在环的入口处相遇。每个节点包含 data(节点的值)和 next(指向下一个节点的地址或 -1,表示链表结束)。使用哈希表存储节点信息:我们使用一个 Map 来保存每个节点的值和指向下一个节点的标识符。遍历链表:从给定的起始节点开始,按照链表的连接关系遍历链表,将节点按顺序存入数组。
原创
博文更新于 2025.08.21 ·
1397 阅读 ·
32 点赞 ·
0 评论 ·
13 收藏

【华为OD-C卷 ai面板识别 100分(python、java、c++、js、c)】

根据纵坐标的差值判断灯光是否属于同一行:如果当前灯光与上一行灯光的纵坐标差不超过基准灯光的半径(y 坐标差小于等于半径),则认为它们在同一行。本题的核心是根据每个灯光的信息(圆形区域的左上角和右下角坐标),计算每个灯光的圆心位置和半径,并按照一定的规则排序这些灯光。同一行的灯光判断:判断灯光是否在同一行,如果在同一行,则将它们按横坐标 midX 排序,输出灯光的 id。处理同一行的灯光,将相同纵坐标的灯光分到一组,然后按横坐标排序后输出每一行灯光的 id。
原创
博文更新于 2025.08.19 ·
1270 阅读 ·
15 点赞 ·
0 评论 ·
18 收藏
加载更多