網易有道筆試總結


第一題是給你一堆坐標,找出里面可以組成矩形的點並且計算面積?忘記了,當時題目掃了一眼就直接跳過了。。。

第二題是一個隊列中元素進行一些列的操作,輸出是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網易虐我千百遍,我待網易如初戀。。。我大概和網易沒緣分吧,實習筆試刷我,杭研筆試刷我,有道筆試估計又要被刷,現在就剩個網易游戲了.......呵呵呵呵呵呵呵......

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM