操作序列
[編程題] 操作序列
1、將a_i放入b序列的末尾
2、逆置b序列
小易需要你計算輸出操作n次之后的b序列。?
using namespace std;
int main()
{
int n;
scanf("%d",&n);
int arr[n],brr[n];
int i,j,t;
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
if (n % 2 == 0) ?
? ? { ?
? ? ? ? for (i = n - 1; i>0; i = i - 2) ?
? ? ? ? { ?
? ? ? ? ? ? cout << arr[i] << " "; ?
? ? ? ? } ?
? ? ? ? cout << arr[0]; ?
? ? ? ? for (i = 2; i < n-1; i = i + 2) ?
? ? ? ? { ?
? ? ? ? ? ? cout << " "<<arr[i]; ?
? ? ? ? } ?
? ? } ?
? ? else ?
? ? { ?
? ? ? ? for (i = n - 1; i>0; i = i - 2) ?
? ? ? ? { ?
? ? ? ? ? ? cout << arr[i] << " "; ?
? ? ? ? } ?
? ? ? ? cout << arr[0]; ?
? ? ? ? for (i = 1; i < n - 1; i += 2) ?
? ? ? ? { ?
? ? ? ? ? ? cout << " "<<arr[i]; ?
? ? ? ? } ?
? ? } ??
}
時間限制:2秒
空間限制:32768K
小易有一個長度為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分析:在牛客網中使用逆置方法時,超出時間限制。
需要尋找規律,當n為偶數時,偶數降序,奇數升序。
????????????????????? 當n為奇數時,奇數降序,偶數升序。
#include<stdio.h>
#include<iostream>using namespace std;
int main()
{
int n;
scanf("%d",&n);
int arr[n],brr[n];
int i,j,t;
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
if (n % 2 == 0) ?
? ? { ?
? ? ? ? for (i = n - 1; i>0; i = i - 2) ?
? ? ? ? { ?
? ? ? ? ? ? cout << arr[i] << " "; ?
? ? ? ? } ?
? ? ? ? cout << arr[0]; ?
? ? ? ? for (i = 2; i < n-1; i = i + 2) ?
? ? ? ? { ?
? ? ? ? ? ? cout << " "<<arr[i]; ?
? ? ? ? } ?
? ? } ?
? ? else ?
? ? { ?
? ? ? ? for (i = n - 1; i>0; i = i - 2) ?
? ? ? ? { ?
? ? ? ? ? ? cout << arr[i] << " "; ?
? ? ? ? } ?
? ? ? ? cout << arr[0]; ?
? ? ? ? for (i = 1; i < n - 1; i += 2) ?
? ? ? ? { ?
? ? ? ? ? ? cout << " "<<arr[i]; ?
? ? ? ? } ?
? ? } ??
}
總結
- 上一篇: 2017年网易校招题 末尾0的个数
- 下一篇: 2021-07-27 详解TCP连接建立