通过率 45% · 提交 150 · 通过 68
时间领主观测到,古老的魔法阵会在特定的预言时刻激活。每个魔法咒语必须在对应的魔法阵激活瞬间施放,否则会引发时空乱流。 已知魔法阵的首次激活时刻为 `s`,此后每隔 `d` 个时间单位会再次激活(即激活时刻为 `s, s+d, s+2d, s+3d, ...`)。现在有 `n` 个咒语,第 `i` 个咒语的施放时刻为 `t_i`(按输入顺序索引从 `0` 开始)。只有当咒语的 `t_i` 某个魔法阵激活时刻时,该咒语才能成功施放。 请,输出所有能成功施放的咒语的索引。若同一激活时刻对应多个咒语,则按它们在输入中的顺序输出。 输入: - 第一行输入整数 `n`(`1 <= n <= 1e5`)。 - 第二行输入 `n` 个整数 `t_1, t_2, ..., t_n`(`1 <= t_i <= 1e9`),表示每个咒语的施放时刻。 - 第三行输入两个整数 `s` 和 `d`(`1 <= s, d <= 1e9`),表示魔法阵的首次激活时刻和周期。 输出: - 输出一行整数,表示可施放咒语的索引,按魔法阵激活时刻的顺序排列。同一时刻的咒语按输入顺序输出。 - 如果输出数组为空,那么输出 -1。
这类题属于华为可信认证科目一方向中「数学 / 可信」方向的高频题型,通常考察对「数学 / 可信」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
n(1 <= n <= 1e5)。n 个整数 t_1, t_2, ..., t_n(1 <= t_i <= 1e9),表示每个咒语的施放时刻。s 和 d(1 <= s, d <= 1e9),表示魔法阵的首次激活时刻和周期。示例 1
输入示例
4 2 7 12 17 2 5
输出示例
0 1 2 3
魔法阵激活时刻为 2, 7, 12, 17,四个咒语的时刻均匹配,按顺序输出索引 0,1,2,3。
示例 2
输入示例
6 8 6 8 11 9 14 8 3
输出示例
0 2 3 5
魔法阵激活时刻为 8, 11, 14, 17...(只需覆盖所有输入的 t_i)。
t=8 的咒语索引为 0 和 2,按输入顺序输出。t=11 对应索引 3,t=14 对应索引 5。时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有