华为OD机试真题 新系统 2026-10-28 JavaGoC【社交网络消息转发】
目录
题目
思路
Code
题目
题目内容:
在一个社交网络中,有 N 个用户(编号 0 到 N−1);每个用户都有一个「转发名单」(整数),该数二进制格式中的第 i 位为 1 表示此用户会把消息转发给第 i 个用户。
给定一个整数数组 forwardLists 和一个整数 initialSenders,请计算有哪些用户收到了消息(用户收到消息后会立即转发给转发名单中所有人,直到没有新用户收到消息为止;初始发送者视为已收到消息)。
输入描述:
本题为核心代码模式,你需要实现函数 countMessageReceivers(forwardLists, initialSenders)。
参数 forwardLists 为整数数组,其中 forwardLists[i] 表示用户 i 的转发名单(输入为十进制数),1 ≤ forwardLists.length ≤ 16,0 ≤ forwardLists[i] < 65536。
参数 initialSenders 为整数,其二进制位数为 1 的位表示该用户是初始消息发送者(输入为十进制数),0 ≤ initialSenders < 65536。
输出描述:
返回一个十进制整数,其二进制第 i 位为 1 表示用户 i 收到了消息;例如:用户 0 和用户 1 都收到了消息,则二进制 0011,返回