通过率 71% · 提交 21 · 通过 15
在一座古老的魔幻遗迹中,有一圈的“秘环回廊”,回廊上依次摆放着 `m` 个传送门(下标从 `0` 到 `m-1`)。每个传送门上刻着一个唯一的符文编号,恰好是 `1..m` 的一个。 你是一名法师,需要从符文 `1` 开始,按顺序依次触碰符文: `1 -> 2 -> 3 -> ... -> m` 当你从当前符文所在的传送门移动到下一个目标符文所在的传送门时,你可以沿回廊: * 顺时针走(下标递增,超过 `m-1` 后回到 `0`) * 逆时针走(下标递减,小于 `0` 后回到 `m-1`) 一次移动的步数定义为:沿某个方向从 `curr_idx` 走到 `target_idx` 需要经过的“”(也就是移动次数)。你每一步都选择更短的方向,其最短步数为: `d = abs(curr_idx - target_idx)` `step = min(d, m - d)` 请计算从 `1` 走到 `m` 的整个过程中,所有步数之和。 输入: * 第一行:一个整数 `m`,表示传送门数量。 * 第二行:`m` 个整数,表示乱序的符文排列 `glyphs[0..m-1]`。 输入保证 `glyphs` 是 `1..m` 的一个排列(每个数字恰好出现一次)。 * `2 2 -> ... -> m` 遍历时,每一步最短移动步数的总和。
这类题属于华为可信认证科目一方向中「可信 / 模拟」方向的高频题型,通常考察对「可信 / 模拟」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
m,表示传送门数量。m 个整数,表示乱序的符文排列 glyphs[0..m-1]。输入保证 glyphs 是 1..m 的一个排列(每个数字恰好出现一次)。
2 <= m <= 100glyphs 为 1..m 的排列输出一个整数,表示按 1 -> 2 -> ... -> m 遍历时,每一步最短移动步数的总和。
示例 1
输入示例
7 3 7 1 5 2 6 4
输出示例
14
符文位置(值 -> 下标)为:
1->2, 2->4, 3->0, 4->6, 5->3, 6->5, 7->1
1(2) -> 2(4):min(2, 5)=22(4) -> 3(0):min(4, 3)=33(0) -> 4(6):min(6, 1)=14(6) -> 5(3):min(3, 4)=35(3) -> 6(5):min(2, 5)=26(5) -> 7(1):min(4, 3)=3总和:2+3+1+3+2+3 = 14
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有