2018年网易笔试题1:输入一个数列a,a有n个元素,对数列b进行操作:1)将a的第一元素放在b的末尾,2)翻转b。将操作1)2)进行n次,求b

来源:互联网 发布:日本网络电视jitakutv 编辑:程序博客网 时间:2024/05/18 00:23

2018年网易笔试题1:输入一个数列a,a有n个元素,对数列b进行操作:1)将a的第一元素放在b的末尾,2)翻转b。将操作1)2)进行n次,求b

例如

输入 1 2 3 4

输出 4 2 1 3

思路:利用双向链表list避免了reverse

#include "stdafx.h"#include <iostream>#include <cstdio>#include <stack>#include <vector>#include <algorithm>#include <list>using namespace std;int main(){    int n;    vector<int> a;list<int> b;int x;scanf("%d",&n);int i = 0;for(; i < n; i++){scanf("%d",&x);if(i % 2)   b.push_back(x);elseb.push_front(x);}if(i % 2 == 1){list<int>::iterator it = b.begin();while(it != b.end()){   cout << *it  << ' ';   it++;}}else{list<int>::reverse_iterator rit = b.rbegin();while(rit != b.rend()){   cout << *rit << ' ';   rit++;}}    return 0;}


阅读全文
0 0
原创粉丝点击