2018网易笔试题-操作序列
来源:互联网 发布:php特点 编辑:程序博客网 时间:2024/05/19 04:51
编程题] 操作序列
时间限制:2秒
空间限制:32768K
小易有一个长度为n的整数序列,a_1,...,a_n。然后考虑在一个空序列b上进行n次以下操作:
1、将a_i放入b序列的末尾
2、逆置b序列
小易需要你计算输出操作n次之后的b序列。
1、将a_i放入b序列的末尾
2、逆置b序列
小易需要你计算输出操作n次之后的b序列。
输入描述:
输入包括两行,第一行包括一个整数n(2 ≤ n ≤ 2*10^5),即序列的长度。第二行包括n个整数a_i(1 ≤ a_i ≤ 10^9),即序列a中的每个整数,以空格分割。
输出描述:
在一行中输出操作n次之后的b序列,以空格分割,行末无空格。
输入例子1:
41 2 3 4
输出例子1:
4 2 1 3
模拟操作,可发现规律:
从后往前,隔一个一输出;剩下的从前往后输出即可。
因为题目中有要求为行末无空格,笔者用StringBuilder记录,最后除去首末空格。
代码如下:
import java.util.Scanner;/** * Created by YangGang on 2017/9/4. */public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n=scanner.nextInt(); int [] a=new int[n]; for(int i=0;i<n;++i){ a[i]=scanner.nextInt(); } if(n==1){ System.out.println(a[0]); return; } StringBuilder stringBuilder=new StringBuilder(); for(int i=a.length-1;i>=0;i=i-2){ stringBuilder.append(a[i]+" "); } //如果是奇数 if((n&1)!=0){ for(int i=1;i<a.length;i+=2){ stringBuilder.append(a[i]+" "); } } //如果是偶数 else { for(int i=0;i<a.length;i+=2){ stringBuilder.append(a[i]+" "); } } System.out.println(stringBuilder.toString().trim()); }}
阅读全文
0 0
- 2018网易笔试题-操作序列
- 网易笔试:操作序列
- 网易2018内推笔试题_操作序列_C++
- 2018网易内推笔试-操作序列(python)
- 网易2018内推Java开发工程师笔试题----操作序列
- 网易笔试题:回文序列
- 网易笔试题:回文序列
- 网易笔试在线编程_ 操作序列
- 网易编程题--操作序列
- 网易编程题 操作序列
- 网易2018内推编程题——操作序列
- 2018网易校招编程题(4)操作序列
- 网易2018校招内推编程题集合:操作序列 [python]
- 【笔试题】网易2018秋招内推笔试
- 网易2018校招内推笔试题
- 网易2018笔试题一
- 网易2018笔试题二
- 网易2018笔试题三
- 操作系统:概念
- 《Deep Learning》学习5——循环神经网络梯度计算
- Java NIO使用及原理分析 (三)
- Java 安装
- 双卡双待(二)
- 2018网易笔试题-操作序列
- Windows10安装Anaconda无法生成菜单
- 深入理解Java中的final关键字
- 设置scrollTop无效
- 机器学习模型和算法学习随记
- POJ
- js经典小案例之倒计时
- 深海探险 51Nod
- 几种Boost算法的比较(Discrete AdaBoost, Real AdaBoost, LogitBoost, Gentle Adaboost)