通过率 100% · 提交 12 · 通过 12
在一个社交网络中,有 N 个用户(编号 0 到 N-1);每个用户都有一个「转发名单」(整数),该数二进制格式中的第 i 位为 1 表示此用户会把消息转发给第 i 个用户。 给定一个整数数组 forwardLists 和一个整数 initialSenders,请计算有哪些用户收到了消息(用户收到消息后会立即转发给转发名单中所有人,直到没有新用户收到消息为止;初始发送者视为已收到消息)。
这类题属于算法机考高频题型中「100分 / 华为OD」方向的高频题型,通常考察对「100分 / 华为OD」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
返回一个十进制整数,其二进制第 i 位为 1 表示用户 i 收到了消息;例如:用户 0 和用户 1 都收到了消息,即二进制 0011,返回结果 3。
示例 1
输入示例
2 4 0 1
输出示例
7
2 => 二进制 0010 表示用户 0 会转发给用户 1 4 => 二进制 0100 表示用户 1 会转发给用户 2 0 => 二进制 0000 表示用户不转发 initialSenders = 1,二进制 0001,表示用户 0 是初始发送者
转发过程
最终 0、1、2 收到消息,对应二进制为 0111 = 7
示例 2
输入示例
1 0 4 2
输出示例
2
时间限制 1000 ms · 内存限制 256 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有