网易2018校招内推编程题 操作序列

简介: 小易有一个长度为n的整数序列,a_1,...,a_n。然后考虑在一个空序列b上进行n次以下操作: 1、将a_i放入b序列的末尾 2、逆置b序列 小易需要你计算输出操作n次之后的b序列。 输入描述: 输入包括两行,第一行包括一个整数n(2 ≤ n ≤ 2*10^5),即序列的长度。
 * 问题:
小易有一个长度为n的整数序列,a_1,...,a_n。然后考虑在一个空序列b上进行n次以下操作:
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:
4
1 2 3 4

输出例子1:
4 2 1 3

* 思路:
 * 序列a:0 1 2 3 4 5 6 7 8 9   长度为10
 * 序列b的变化过程:
 *  一、 0
 *  二、 1 0
 *  三、 2 0 1
 *  四、 3 1 0 2
 *  五、 4 2 0 1 3
 *  六、 5 3 1 0 2 4
 *  七、 6 4 2 0 1 3 5
 *  八、 7 5 3 1 0 2 4 6
 *  九、 8 6 4 2 0 1 3 5 7
 *  十、 9 7 5 3 1 0 2 4 6 8
 *  
 *  很明显,若经过奇数次的变化,a序列的偶数序号是以递减的顺序排在b序列的左侧,a序列的奇数序号是以递增的顺序排列在b序列的右侧。
 *  反之,若经过偶数次的变化,a序列的奇数数序号是以递减的顺序排在b序列的左侧,a序列的偶数序号是以递增的顺序排列在b序列的右侧。
 *  只需要将偶数序号和奇数序号分开生各成一个数组,按照递减或递增的规律先后输出即可。

JAVA程序:

public class OperationSequence {

	public static void main(String[] args) {
		int[] oddArr;
		int[] evenArr;
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		if(n%2==0){
			oddArr=new int[n/2];
			evenArr=new int[n/2];
			for (int i = 0; i < n; i++) {
				int sub=i/2;
				if(i%2==0){
					evenArr[sub]=scanner.nextInt();
				}else{
					oddArr[sub]=scanner.nextInt();
				}
			}
			
			for (int i = oddArr.length-1; i >=0; i--) {
				System.out.print(oddArr[i]+" ");
			}
			for (int i = 0; i < evenArr.length-1; i++) {
				System.out.print(evenArr[i]+" ");
			}
			System.out.println(evenArr[evenArr.length-1]);
		}else{
			oddArr=new int[n/2];
			evenArr=new int[n/2+1];
			for (int i = 0; i < n; i++) {
				int sub=i/2;
				if(i%2==0){
					evenArr[sub]=scanner.nextInt();
				}else{
					oddArr[sub]=scanner.nextInt();
				}
			}
			
			for (int i = evenArr.length-1; i >=0; i--) {
				System.out.print(evenArr[i]+" ");
			}
			for (int i = 0; i < oddArr.length-1; i++) {
				System.out.print(oddArr[i]+" ");
			}
			System.out.println(oddArr[oddArr.length-1]);
		}
		
	}

}


相关文章
|
6月前
|
缓存 算法 NoSQL
凭借一份“面试真经pdf”,我四面字节跳动,拿下1-2级offer
近两年是中国互联网企业组织架构升级的大年,阿里、腾讯、小米、快手等知名互联网企业都进行了相应调整。2020年3月12日,字节跳动成立八周年之际,宣布组织全面升级,而这一消息也彻底激起了我对字节跳动的期待。
|
6月前
|
算法 NoSQL Java
懵逼!阿里一面就被虐了,幸获内推华为技术四面,成功拿到offer
上个月,哥们从某小厂离职,转投阿里云,简历优秀,很顺利地拿到了面试通知,但之后的进展却让哥们怀疑人生了,或者说让哥们懵逼的是,面试阿里云居然第一面就被吊打?让哥们开始怀疑自己,是不是这些年工作下来,自己没有一丁点的进步呢?
|
6月前
|
SQL 算法 NoSQL
三面头条,靠P9级算法大牛分享的两本算法pdf书籍,轻松拿到offer
头条一面(Java+项目) 1.倒排索引 2.讲讲redis里面的哈希表? 3.happen-before的规则? 4.volatile修饰符,synchronize锁 5.java单例模式的实现,懒汉、饿汉? 6.进程与线程的区别,多进程和多线程的区别?
|
人工智能 算法 Java
拼多多2019春招编程题答案
拼多多2019春招编程题答案
|
Java
第五期:字符串的一些有意思的操作
第五期:字符串的一些有意思的操作
88 0
|
缓存 移动开发 JavaScript
5.17-5.25 大厂一轮面试题目全记录(腾讯PCG、WXG、虾皮、字节)
本瓜前段时间(2020.05.17 ~ 2020.05.25)可能由于机缘巧合?获得了几家大厂的面试资格。遂去试了试水(不该裸面呀),发现自己还是火候不够。
|
缓存 网络协议 NoSQL
字节跳动秋招整理牛客网---Java后端提前批面试
字节跳动秋招整理牛客网---Java后端提前批面试
176 0
字节跳动秋招整理牛客网---Java后端提前批面试
|
人工智能 Cloud Native NoSQL
阿里云产品精选内容合集(四)| 具体应用困难?那你不能错过这些应用技巧
本合集精选社区阿里云数据库内容,助你更快更好的了解阿里云数据库近况及实战应用。