网易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]);
		}
		
	}

}


相关文章
|
7月前
|
存储 C++
【C++从0到王者】第十九站:手把手教你写一个反向迭代器
【C++从0到王者】第十九站:手把手教你写一个反向迭代器
18 0
|
1月前
|
SQL 算法 NoSQL
三面头条,靠P9级算法大牛分享的两本算法pdf书籍,轻松拿到offer
头条一面(Java+项目) 1.倒排索引 2.讲讲redis里面的哈希表? 3.happen-before的规则? 4.volatile修饰符,synchronize锁 5.java单例模式的实现,懒汉、饿汉? 6.进程与线程的区别,多进程和多线程的区别?
|
Java
第五期:字符串的一些有意思的操作
第五期:字符串的一些有意思的操作
67 0
|
测试技术
【面试题】又一批新鲜出炉的软测面试题及答案
【面试题】又一批新鲜出炉的软测面试题及答案
|
缓存 移动开发 JavaScript
5.17-5.25 大厂一轮面试题目全记录(腾讯PCG、WXG、虾皮、字节)
本瓜前段时间(2020.05.17 ~ 2020.05.25)可能由于机缘巧合?获得了几家大厂的面试资格。遂去试了试水(不该裸面呀),发现自己还是火候不够。
|
存储 关系型数据库 Unix
偶数社区投稿丨OushuDB学习实践系列(一):开一家超市
偶数社区投稿丨OushuDB学习实践系列(一):开一家超市
68 0
|
算法 测试技术
算法 | 高楼丢鸡蛋(源自谷歌面试题)| 刷题打卡
算法 | 高楼丢鸡蛋(源自谷歌面试题)| 刷题打卡
102 0
算法 | 高楼丢鸡蛋(源自谷歌面试题)| 刷题打卡
|
存储 SQL 机器学习/深度学习
阿里云大数据开发一面面经,已过,面试题已配答案
阿里云大数据开发一面面经,已过,面试题已配答案
|
分布式计算 大数据 Hadoop
【合集】想要轻松玩转阿里云?这里干货请收下!
在这里你可以寻找你想要的所有干货,带你一图了解阿里云!
261 0
【合集】想要轻松玩转阿里云?这里干货请收下!
|
人工智能 Cloud Native NoSQL
阿里云产品精选内容合集(四)| 具体应用困难?那你不能错过这些应用技巧
本合集精选社区阿里云数据库内容,助你更快更好的了解阿里云数据库近况及实战应用。

热门文章

最新文章