首页 > 试题广场 >

操作序列

[编程题]操作序列
  • 热度指数:35578 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
小易有一个长度为 n 的整数序列,a_1,...,a_n。然后考虑在一个空序列 b 上进行 n 次以下操作:
1、将 a_i 放入 b 序列的末尾
2、逆置 b 序列
小易需要你计算输出操作 n 次之后的 b 序列。

输入描述:
输入包括两行,第一行包括一个整数n(2 ≤ n ≤ 2*10^5),即序列的长度。
第二行包括n个整数 ai (1 ≤ ai ≤ 10^9),即序列a中的每个整数,以空格分割。


输出描述:
在一行中输出操作 n 次之后的 b 序列,以空格分割,行末无空格。 
示例1

输入

4
1 2 3 4

输出

4 2 1 3
头像 牛客题解官
发表于 2020-06-05 17:57:55
题解 难度:简单 知识点:数学逻辑 题目解析 题目的意思是将输入数组在空数组b上进行n次下面的操作:第i次操作时1)将输入数组的第i个数字放到b的末尾2)将b数组逆序 例子:输入数组为1234 操作次数 b 逆序后的b 第1次 1 1 第2次 12 21 第3次 213 312 展开全文
头像 健康快乐最重要
发表于 2020-03-15 13:43:44
/* 这题本身是一个规律题,直接逆序的话肯定要超时的。 以后遇到这种题的时候要多找几组样例,然后观察规律 规律: 从后往前隔一个输出一个,然后再从前往后隔一个输出一个(开始的元素一定是从后往前没输出过的) 比如 5 6 7 2 3,从后往前输出3 7 5,然后 展开全文
头像 不热爱编程的程序猿
发表于 2022-03-02 18:53:24
Python找规律 输入n个数 1.如果n=1直接输出; 2.否则首先从最后一位往前每隔一个数逆序输出,然后从数组中剩余数的第一个数往后每隔一个数顺序输出 n = int(input()) arr = list(input().split()) flag = True if n == 1: 展开全文
头像 中科院在逃院士
发表于 2021-07-22 19:51:57
你们的方法都好高端,我只想到了用链表的方式来解决这个问题意外的内存和速度都比较好 import java.util.*; public class Main { public static void main(String[] args){ Scanner s 展开全文
头像 xuheding
发表于 2022-09-07 00:37:25
找规律,对于 1 2 3 4 的结果,是下面这样子排布的,因此反着遍历,从4开始,  按下图箭头遍历 #include<iostream> #include<climits> #include<vector> #include< 展开全文