WY37 - 操作序列 - 网易
(java实现)
题目描述:
小易有一个长度为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
输出
4 2 13
问题分析:
思路一:若使用暴力法,即每输入一次,就调整一次;这样思路是挺简单的,但是会带来一个问题,一旦数据量很大的时候,这个调整的时间就会大大的增加,容易超时。
思路二:寻找规律:
n = 1; a = 1; b = 1 n = 1直接输出
n = 2; a = 1,2; b = 2,1
n = 3; a = 1,2,3; b = 3,1,2
n = 4; a = 1,2,3,4; b = 4,2,1,3
n = 5; a = 1,2,3,4,5; b = 5,3,1,2,4
n = 6; a = 1,2,3,4,5,6; b = 6,4,2,1,3,5
由上述可推:
当n为奇数时,先从后向前输出奇数位置的数字,再从前向后输出偶数位置的数字;
当n为偶数时,先从后向前输出偶数位置的数字,再从前向后输出奇数位置的数字;
总结:第一,直接从末尾往前输出,间隔为2;第二前面往后输出,间隔为2;
注意:由于输出的要求,只能是每个数字之间留有空格。(这时需要单独输出第一个,或者是最后一个)
相关知识:
略
参考代码:
思路一实现:
略(提交的暴力法的代码,当时未保存在本地。平台上估计是为了减少存储,好像只保留最新的一次提交的代码)
思路二实现:
import java.util.*;
public class Main {public static void main(String[] args) {Scanner input = new Scanner(System.in);while (input.hasNextInt()) {int n = input.nextInt();int[] nums = new int[n];for (int i = 0; i < n; i++) {nums[i] = input.nextInt();}System.out.print(nums[n-1]); // 第一个数for (int i=n-3; i>=0; i-=2) {// 前一半从最后一个数开始以2为步长递减System.out.print(" " + nums[i]);}for (int i=n%2; i<n; i+=2) {// 后一半根据整数个数的奇偶,分别从第二个或第一个数开始以2为步长递增System.out.print(" " + nums[i]);}}}
}
WY37 - 操作序列 - 网易相关推荐
- 2018网易笔试题-操作序列
编程题] 操作序列 时间限制:2秒 空间限制:32768K 小易有一个长度为n的整数序列,a_1,...,a_n.然后考虑在一个空序列b上进行n次以下操作: 1.将a_i放入b序列的末尾 2.逆置b序 ...
- qu(判定操作序列)NOIP模拟 数据结构判断 模拟
[问题描述] 给你一个操作序列,问这个维护操作序列的数据结构是哪一种? [输入格式] 第一行是一个正整数?代表操作数目. 接下来?行,每行两个正整数???, ?.如果??? = 1,代表我们将?加入数 ...
- 栈练习之Example006-判定给定的由 I 和 O 组成的入栈和出栈组成的操作序列是否合法
Example006 题目 假设以 I 和 O 分别表示入栈和出栈操作.栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅有 I 和 O 组成的序列,可以操作的序列为合法序列,否则称为非法序列.如 ...
- 假设以I和O分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为非法序列。
①下面所示的序列中哪些是合法的? A. IOIIOIOO B. IOOIOIIO C. IIIOIOIO D. IIIOOIOO ②通过对①的分析,写出一个算法,判定所给的操作序列是否合法.若合法,返 ...
- python访问序列元素的编号用什么括起来_Python从菜鸟到高手(12):通过索引操作序列元素...
1.定义序列 本文将介绍一下在Python语言中如何定义序列.定义序列的语法与Java中的数组类似,使用一对中括号将序列中的元素值括起来. 下面的例子创建一个元素类型是字符串的序列,实现代码如下: n ...
- 网易编程题------操作序列
题目描述 小易有一个长度为n的整数序列,a_1,...,a_n.然后考虑在一个空序列b上进行n次以下操作: 1.将a_i放入b序列的末尾 2.逆置b序列 小易需要你计算输出操作n次之后的b序列. 输入 ...
- 网易2018内推编程题——操作序列
时间限制:2秒 空间限制:32768K 小易有一个长度为n的整数序列,a_1,...,a_n.然后考虑在一个空序列b上进行n次以下操作: 1.将a_i放入b序列的末尾 2.逆置b序列 小易需要你计算输 ...
- java 操作序列_JAVA序列化操作详解
一.概述 很多时候我们需要将对象的信息以文件的形式存储到硬盘上以便以后可以恢复使用.我们可以按照一定的格式将变量的值依次写到特定格式的文件中.但有时候我们希望只有我们自己可以读懂它并且修改它,这就是序 ...
- 类C语言--栈与队列习题--假设以I和O分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为非法序列。
此代码可以正常运行,是是实实在在的类C语言 #include<stdio.h> #include<stdlib.h> #define MaxSize 100typedef ch ...
最新文章
- thinkphp实现登录后返回原界面
- mysql 主从复制 和基于gtid的mysql主从复制
- 78. Leetcode 264. 丑数 II (堆-技巧二-多路归并)
- vs2008 c++ 调用java
- linux-shell命令之mount【挂载命令】
- TensorFlow零基础入门指南——计算模型、数据模型、运行模型!
- linux下配置iscsi存储,linux 下iscsi网络存储配置
- 如何确定autosar的版本_从工程师的角度看AUTOSAR
- 恒丰银行微服务架构优化实践
- 我的软件开发生涯 (10年开发经验总结和爆栈人生)
- Linux#Shell#if [ $# -ne 1 ];then 是什么意思?
- 联合循环——13(智慧电厂的发展与展望)
- 计算机加内存还是固态硬盘,电脑慢加内存还是固态硬盘好
- mysql_opt_reconnect mysql_ping_蛋疼的mysql_ping()以及MYSQL_OPT_RECONNECT
- Android WebView支持文件下载之调起浏览器下载(Java与Kotlin版)
- Android 自定义seekbar【仿微信联系人】
- 地理信息系统(GIS)系列——Portal for ArcGIS
- JavaScript中的数据结构和算法
- 97年时的计算机系统桌面,这些年电脑桌上的变迁 篇一:设备的更迭
- 【读点论文】Masked Autoencoders Are Scalable Vision Learners 完型填空应用到视觉处理上
热门文章
- [VisionPro与C#]联合编程时,遇到的异常及处理(调用目标发生了异常,对象的当前状态使该操作无效)
- face - Word Translation without Parallel Data
- Python中的除法
- 造成java.lang.ExceptionInInitializerError的原因
- 阿里企业邮箱使用配置指南
- 平面设计,字体应该怎么选?
- 还搞不懂性能调优?让你见识这份《Java性能调优PDF》啃完你就知道多厉害了!
- 能涨薪3k的UI 自动化测试框架:关键字驱动+数据驱动
- mysql做用户满意度调查系统_MySQL分析工作满意度
- 整活--我是如何用OpenCV做了数字华容道游戏(附源码)