zoukankan      html  css  js  c++  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

     

    输出例子1:
    4 2 1 3

    方法一:(只通过50%case) 原因:暴力求解复杂度太高
    #include<iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    void print(vector<int>b)
    {
        for(int i=0; i<b.size();i++)
        {
            cout<<b[i]<<" ";
        }
        cout<<endl;
    }
    int main()
    {
        int N;
        cin>>N;
        vector<int>b;
        int x;
        while(N--)
        {
            cin>>x;
            b.push_back(x);
            reverse(b.begin(),b.end());
            if(N==0)
            print(b);
        }
        return 0;
    }

     方法二:

    观察排列的情况可以得出结论:

    如果n是奇数,则先倒序输出奇数(n,n-2,...,1)然后是升序的偶数(2,4,...,n-1);

    如果n是偶数,则先倒序输出偶数(n,n-2,...,2)然后是升序的奇数(1,3,....,n-1)

    #include<iostream>
    #include<vector>
    #include<algorithm>
    const int maxn=2e5;
    using namespace std;
    int main()
    {
        int n;
        cin>>n;
        int a[maxn];
        for(int i=1;i<=n;i++)//注意数组的初始化
        {
            int x;
            cin>>x;
            a[i]=x;
        }
        if(n%2)
        {
            for(int i=n;i>=1;i-=2)  cout<<a[i]<<" ";
            for(int i=2;i<=n;i+=2)
                i==n-1?cout<<a[i]:cout<<a[i]<<" ";
        }
        else
        {
            for(int i=n;i>=1;i-=2) cout<<a[i]<<" ";
            for(int i=1;i<=n;i+=2)
                i==n-1?cout<<a[i]:cout<<a[i]<<" ";
        }
        return 0;
    }
  • 相关阅读:
    HTML 基本知识
    Vue.js 基本内容
    机器学习概述
    9 验证回文串
    c 字符串的一些常用函数
    8 有效的字母异位词
    7 字符串中的第一个唯一字符
    对公平锁、非公平锁、可重入锁、递归锁、自旋锁的理解
    一个解释volatile关键字最好的例子
    Singleton多种实现方式的在多线程情况下的优缺点
  • 原文地址:https://www.cnblogs.com/wft1990/p/7418030.html
Copyright © 2011-2022 走看看