码迷,mamicode.com
首页 > 其他好文 > 详细

网易有道笔试总结

时间:2016-08-18 23:23:23      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

第一题是给你一堆坐标,找出里面可以组成矩形的点并且计算面积?忘记了,当时题目扫了一眼就直接跳过了。。。

第二题是一个队列中元素进行一些列的操作,输出是1,2,3,4....n按顺输出,问你原来的序列是多少。

这个其实就是每次都跳过一个可用位置然后在下一个位置放入数字,如果到达容器尾部,那么再从头开始搜索,知道全部位置都放了数字。

简直天杀的,这个最后我调出来超时了2分钟,结果自动交卷了 T   T码代码的速度很重要啊,还有OJ平台是真的烂,笔试的平台感觉一个比一个烂!

代码如下:

#include <iostream>
#include <queue>
#include <stack>

using namespace std;

int findNextIndex(vector<int> &isSelected, int index) {
	int count = 0;
	int res = 0;
	for (int i = index; i <= isSelected.size(); i++) {
		if (i == isSelected.size()) {
			i = 0;
		}
		if (isSelected[i] == 0 && count == 0) {
			count = 1;
		}
		else if (isSelected[i] == 0 && count == 1) {
			res = i;
			break;
		}		
	}
	return res;
}

int main() {
	int n;
	cin >> n;
	vector<vector<int>> res;
	while (n > 0) {
		n--;
		int k;
		cin >> k;
		vector<int> isSelected(k, 0);
		vector<int> result(k, 0);
		int count = 1;
		int curNum = 1;
		int index = 0;
		while (curNum <= k) {
			index = findNextIndex(isSelected, index);
			result[index] = curNum;
			curNum++;
			isSelected[index] = 1;
		}
		res.push_back(result);
	}
	for (int i = 0; i < res.size(); i++) {
		for (int j = 0; j < res[i].size(); j++) {
			cout << res[i][j] << " ";
		}
		cout << endl;
	}
	cout << endl;
}

第三题是洗牌算法,给你一堆牌里面有2n张牌,让你洗K次,每次将2n张牌分为2堆,1-n和n+1-2n,然后先放右手1张牌,再放左手一张牌。。。如此反复,直到所有牌都放完,其实还是很简单,但是感觉每次码代码都有各种小问题,我就因为只存了左手的数结果折腾了半天,太傻X了。。。。

思路就是:交错放置,其实我的代码并不怎么好,每次都要生成O(n)的额外空间,感觉效率也不怎么样,反正OJ平台也没给我任何反馈,也不知道对不对。。。。

#include <vector>
#include <iostream>

using namespace std;

void swapinsert(vector<int> &source, int n ) {
	vector<int> temp( source );
	for (int i = 0; i < n ; i++) {
		source[2 * i] = temp[i];
		source[2 * i + 1] = temp[n + i];
	}
}


int main() {
	int m;
	cin >> m;
	vector < vector<int>> res;
	while (m > 0) {
		int n;
		int k;
		cin >> n >> k;
		vector<int> source;
		int num;
		for (int i = 0; i < 2 * n; i++)
		{
			cin >> num;
			source.push_back(num);
		}
		m--;
		while (k > 0) {
			swapinsert(source, n);
			k--;
		}
		res.push_back(source);		
	}
	for (int i = 0; i < res.size(); i++) {
		for (int j = 0; j < res[i].size(); j++) {
			cout << res[i][j] << " ";
		}
		cout << endl;
	}
}

  又是一次失败的笔试T  T网易虐我千百遍,我待网易如初恋。。。我大概和网易没缘分吧,实习笔试刷我,杭研笔试刷我,有道笔试估计又要被刷,现在就剩个网易游戏了.......呵呵呵呵呵呵呵......

  

网易有道笔试总结

标签:

原文地址:http://www.cnblogs.com/rockwall/p/5785626.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!