#刷题交流# 打卡第20天,小R有一个特殊的随机播放规则。他首先播放歌单中的第一首歌,播放后将其从歌单中移除。如果歌单中还有歌曲,则会将当前第一首歌移到最后一首。这个过程会一直重复,直到歌单中没有任何歌曲。例如,给定歌单 [5, 3, 2, 1, 4],真实的播放顺序是 [5, 2, 4, 1, 3]。保证歌曲中的id两两不同。解题思路:为了实现小R的特殊随机播放规则,我们需要模拟这个过程。首先播放列表中的第一首歌,并将其移除,然后将新的第一首歌移到列表末尾,重复这个过程直到列表为空。我们可以使用一个队列来模拟这个过程,因为队列具有先进先出(FIFO)的特点,这正好符合题目中描述的操作:从列表的前端取歌曲并播放,然后如果列表不为空,将新的第一个元素移动到列表的末尾。
展开
评论