网站后台不能添加内容,静态网站有什么用,做网站背景图片要多大,用pw后缀的网站1.题目
问题描述
小R有一个特殊的随机播放规则。他首先播放歌单中的第一首歌#xff0c;播放后将其从歌单中移除。如果歌单中还有歌曲#xff0c;则会将当前第一首歌移到最后一首。这个过程会一直重复#xff0c;直到歌单中没有任何歌曲。
例如#xff0c;给定歌单 [5, …1.题目
问题描述
小R有一个特殊的随机播放规则。他首先播放歌单中的第一首歌播放后将其从歌单中移除。如果歌单中还有歌曲则会将当前第一首歌移到最后一首。这个过程会一直重复直到歌单中没有任何歌曲。
例如给定歌单 [5, 3, 2, 1, 4]真实的播放顺序是 [5, 2, 4, 1, 3]。
保证歌曲中的id两两不同。 测试样例
样例1 输入n 5 ,a [5, 3, 2, 1, 4] 输出[5, 2, 4, 1, 3] 样例2 输入n 4 ,a [4, 1, 3, 2] 输出[4, 3, 1, 2] 样例3 输入n 6 ,a [1, 2, 3, 4, 5, 6] 输出[1, 3, 5, 2, 6, 4] 2.思路
用队列存放原始歌单模拟题目中的播放规则
3.代码
#include iostream
#include vector
#include queue
using namespace std;std::vectorint solution(int n, std::vectorint a) {// PLEASE DO NOT MODIFY THE FUNCTION SIGNATURE// write code herequeueint original_playlist; // 原始歌单vectorint final_playlist; // 最终播放顺序// 将原始歌单放入队列中for (int i 0; i a.size(); i) {original_playlist.push(a[i]);}while (original_playlist.size() ! 0) {// 播放歌单中的第一首歌int cur original_playlist.front();final_playlist.push_back(cur); // 播放后将其从歌单中移除original_playlist.pop();// 当前第一首歌移到最后一首cur original_playlist.front();original_playlist.pop();original_playlist.push(cur);}return final_playlist;
}int main() {std::vectorint result1 {5, 2, 4, 1, 3};std::vectorint result2 {4, 3, 1, 2};std::vectorint result3 {1, 3, 5, 2, 6, 4};std::cout (solution(5, {5, 3, 2, 1, 4}) result1) std::endl;std::cout (solution(4, {4, 1, 3, 2}) result2) std::endl;std::cout (solution(6, {1, 2, 3, 4, 5, 6}) result3) std::endl;
}