今天主要是赶上之前的java课程,因为有一段时间没学java语法的内容了,所以又多复习了一会,明天要继续,今天还有些东西没明白。
今天写队列的题,但是不知道为什么会超时,明天重新再想想怎么解决。
把代码先贴着记录:
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
scanf("%d", &n);
// 使用队列模拟过程(动态开辟内存空间)
int* queue = (int*)malloc(n * sizeof(int));
// 初始化队列,牌号为1到n
for (int i = 0; i < n; i++) {
queue[i] = i + 1;
}
int* re = (int*)malloc(n * sizeof(int));
int l = 0;
int r = n;
for (int i = 0; i < n; i++) {
// 将最上方的牌放到队列底部
queue[r++] = queue[l++];
// 取出下一张牌
re[i] = queue[l++];
}
for (int i = 0; i < n; i++) {
printf("%d", re[i]);
if (i != n - 1) {
printf(" ");
}
}
free(re);
free(queue);
return 0;
}