zoukankan      html  css  js  c++  java
  • 网易有道笔试总结

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

    第二题是一个队列中元素进行一些列的操作,输出是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网易虐我千百遍,我待网易如初恋。。。我大概和网易没缘分吧,实习笔试刷我,杭研笔试刷我,有道笔试估计又要被刷,现在就剩个网易游戏了.......呵呵呵呵呵呵呵......

      

  • 相关阅读:
    Servlet访问第一次500,刷新后404的解决办法
    关于eclipse保存代码很慢,提示the user operation is waiting的问题
    编译时,运行时解释
    JDK、JRE、JVM
    IDEA使用maven中tomcat插件启动项目乱码问题
    treeGrid树形数据表格的json数据格式说明
    Maven最佳实践:Maven仓库(转)
    intelliJ idea debug模式下启动慢的原因
    基于 Annotation 拦截的 Spring AOP 权限验证方法
    化繁为简 如何向老婆解释MapReduce?(转载)
  • 原文地址:https://www.cnblogs.com/rockwall/p/5785626.html
Copyright © 2011-2022 走看看