华为OD机试 - 模拟消息队列(Java & JS & Python)

这篇具有很好参考价值的文章主要介绍了华为OD机试 - 模拟消息队列(Java & JS & Python)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目描述

让我们来模拟一个消息队列的运作,有一个发布者和若干消费者,发布者会在给定的时刻向消息队列发送消息,

  • 若此时消息队列有消费者订阅,这个消息会被发送到订阅的消费者中优先级最高(输入中消费者按优先级升序排列)的一个;
  • 若此时没有订阅的消费者,该消息被消息队列丢弃。

消费者则会在给定的时刻订阅消息队列或取消订阅。

  • 当消息发送和订阅发生在同一时刻时,先处理订阅操作,即同一时刻订阅的消费者成为消息发送的候选。
  • 当消息发送和取消订阅发生在同一时刻时,先处理取消订阅操作,即消息不会被发送到同一时刻取消订阅的消费者。

输入描述

输入为两行。

第一行为2N个正整数,代表发布者发送的N个消息的时刻和内容(为方便解折,消息内容也用正整数表示)。第一个数字是第一个消息的发送时刻,第二个数字是第一个消息的内容,以此类推。用例保证发送时刻不会重复,但注意消息并没有按照发送时刻排列。

第二行为2M个正整数,代表M个消费者订阅和取消订阅的时刻。第一个数字是第一个消费者订阅的时刻,第二个数字是第一个消费者取消订阅的时刻,以此类推。用例保证每个消费者的取消订阅时刻大于订阅时刻,消费者按优先级升序排列。

两行的数字都由空格分隔。N不超过100,M不超过10,每行的长度不超过1000字符。

输出描述

输出为M行,依次为M个消费者收到的消息内容&#x文章来源地址https://www.toymoban.com/news/detail-529554.html

到了这里,关于华为OD机试 - 模拟消息队列(Java & JS & Python)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 华为OD机试 - 购物(Java & JS & Python)

    题目描述 商店里有N件唯一性商品,每件商品有一个价格,第 i 件商品的价格是 ai。 一个购买方案可以是从N件商品种选择任意件进行购买(至少一件),花费即价格之和。 现在你需要求出所有购买方案中花费前K小的方案,输出这些方案的花费。 当两个方案选择的商品集合至

    2024年02月12日
    浏览(44)
  • 华为OD机试 - 生日礼物(Java & JS & Python)

    题目描述 小牛的孩子生日快要到了,他打算给孩子买蛋糕和小礼物,蛋糕和小礼物各买一个,他的预算不超过x元。蛋糕cake和小礼物gift都有多种价位的可供选择。 请返回小牛共有多少种购买方案。 输入描述 第一行表示cake的单价,以逗号分隔 第二行表示gift的单价,以逗号分

    2024年02月14日
    浏览(51)
  • 华为OD机试 - 叠积木(Java & JS & Python)

    题目描述 有一堆长方体积木,它们的宽度和高度都相同,但长度不一。 小橙想把这堆积木叠成一面墙,墙的每层可以放一个积木,也可以将两个积木拼接起来,要求每层的长度相同。 若必须用完这些积木,叠成的墙最多为多少层? 输入描述 输入为一行,为各个积木的长度

    2024年02月10日
    浏览(44)
  • 华为OD机试 - 排队游戏(Java & JS & Python)

    题目描述 新来的老师给班里的同学排一个队。 每个学生有一个影力值。 一些学生是刺头,不会听老师的话,自己选位置,非刺头同学在剩下的位置按照能力值从小到大排。 对于非刺头同学,如果发现他前面有能力值比自己高的同学,他不满程度就增加,增加的数量等于前面

    2024年02月09日
    浏览(48)
  • 华为OD机试 - 农场施肥(Java & JS & Python)

    题目描述 某农场主管理了一大片果园,fields[i]表示不同果林的面积,单位:m^2,现在要为所有的果林施肥且必须在n天之内完成,否则影响收成。小布是果林的工作人员,他每次选择一片果林进行施肥,且一片果林施肥完后当天不再进行施肥作业。 假设施肥机的能效为k,单位

    2023年04月18日
    浏览(59)
  • 华为OD机试 - 数字游戏(Java & JS & Python)

    题目描述 小明玩一个游戏。 系统发1+n张牌,每张牌上有一个整数。 第一张给小明,后n张按照发牌顺序排成连续的一行。 需要小明判断,后n张牌中,是否存在连续的若干张牌,其和可以整除小明手中牌上的数字。 输入描述 输入数据有多组,每组输入数据有两行,输入到文

    2024年02月12日
    浏览(51)
  • 华为OD机试 - 查字典(Java & JS & Python)

    题目描述 输入一个单词前缀和一个字典,输出包含该前缀的单词 输入描述 单词前缀+字典长度+字典 字典是一个有序单词数组 输入输出都是小写 输出描述 所有包含该前缀的单词,多个单词换行输出 若没有则返回-1 用例 输入 b 3 a b c 输出 b 说明 无 输入 abc 4 a ab abc abcd 输出

    2024年02月11日
    浏览(38)
  • 华为OD机试 - 矩阵扩散(Java & JS & Python)

    题目描述 存在一个m×n的二维数组,其成员取值范围为0或1。 其中值为1的成员具备扩散性,每经过1S,将上下左右值为0的成员同化为1。 二维数组的成员初始值都为0,将第[i,j]和[k,l]两个个位置上元素修改成1后,求矩阵的所有元素变为1需要多长时间。 输入描述 输入数据中的

    2024年02月09日
    浏览(44)
  • 华为OD机试 - 篮球比赛(Java & JS & Python)

    题目描述 篮球(5V5)比赛中,每个球员拥有一个战斗力,每个队伍的所有球员战斗力之和为该队伍的总体战斗力。 现有10个球员准备分为两队进行训练赛,教练希望2个队伍的战斗力差值能够尽可能的小,以达到最佳训练效果。 给出10个球员的战斗力,如果你是教练,你该如何分

    2024年02月12日
    浏览(44)
  • 华为OD机试 - 周末爬山(Java & JS & Python)

    题目描述 周末小明准备去爬山锻炼,0代表平地,山的高度使用1到9来表示,小明每次爬山或下山高度只能相差k及k以内,每次只能上下左右一个方向上移动一格,小明从左上角(0,0)位置出发 输入描述 第一行输入m n k(空格分隔) 代表m*n的二维山地图,k为小明每次爬山或下山高度

    2024年02月13日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包