学生重新排队

学生分组调整算法
567 篇文章

已下架不支持订阅

473 篇文章

已下架不支持订阅

题目解析

本题有两个难点:

  1. 如何快速判断两个小朋友是否为一组
  2. 如何调整站队,才能花费次数最少

关于1,我们可以根据第二行输入做如下处理(以用例1为例):

由于第二行输入的分组排队序列,每3个一组,因此我们只要将分组序列的各元素索引值整除3,即可得出各元素(小朋友序号)所在的分组。

即我们可以根据第二行输入,能得到一个:“序号->组号” 的映射关系。

这组映射关系,我们可以保存为一个map数组,map数组索引就是小朋友序号,map数组元素就是小朋友组号。

之后,我们再根据map的映射关系,就可以将第一行输入的初始小朋友(序号)排队顺序,映射为初始小朋友(组号)顺序,比如用例1:

初始小朋友(序号)排队顺序:4 2 8 5 3 6 1 9 7

初始小朋友(组号)排队顺序:1 1 1 2 0 0 0 2 2

之后,分组调整只需要按照 “初始小朋友(组号)排队顺序” 进行即可。

已下架不支持订阅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿甘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值