标签:
网易笔试过后,心里空空的。下来也和同学们交流,可能大家以为我比较水,在我谈到写那个大数类的时候,直接否认了我的分段加法思想。虽然被否认,但是我却不能懈怠,更不能因此沮丧或者自我否定。我应该在质疑声中证明自己。我也可以,而且8月份为了拿到offer,我开始拼了!
首先说一下选择题吧,我的知识面有所扩展,但是mysql、linux方面的知识欠缺的比较多。设计模式我之前看过专栏:设计模式。但是没总结。TCP/IP协议我也是看了vamei大神的总结,整体理解还算行,但是实现细节就比较欠缺了。
说说编程题吧,幸运的是考前我看到了往年的修学分的题目,和本次的分苹果基本类似。但是下来和大神代码交流的时候还是有不足,在写代码的时候还是要注意很多问题。
#include <iostream> using namespace std; int getRt(int *num, int len) { int av = 0; int total = 0; for (int i = 0; i < len; ++i) av += num[i]; if (av % len != 0) return -1; av = av / len; for (int i = 0; i < len; ++i) num[i] -= av; for (int i = 0; i < len; ++i) { if (num[i] > 0 && num[i] % 2 == 1) return -1; else if (num[i] > 0) total += num[i]; } return total / 2; } int main() { int len = 0; int *arr = NULL; cin >> len; arr = new int[len]; for (int i = 0; i < len; ++i) cin >> arr[i]; int rt = getRt(arr, len); cout << rt << endl; delete arr; return 0; }这段代码的问题在于只能输入一个case。修改为如下即可。
#include <iostream> #include <vector> using namespace std; int GetResult(vector<int> num, int len) { int av = 0; int total = 0; for (int i = 0; i < len; ++i) av += num[i]; if (av % len != 0) return -1; av /= len; for (int i = 0; i < len; ++i) num[i] -= av; for (int i = 0; i < len; ++i) { if (num[i] > 0 && num[i] % 2 == 1) return -1; if (num[i] > 0) total += num[i]; } return total / 2; } int main() { int len = 0; while(cin >> len) //便于输入多个case { vector<int> data(len,0); for (int i = 0; i < len; ++i) { int temp = 0; cin >> temp; data[i] = temp; } int rt = GetResult(data, len); cout << rt << endl; data.clear(); } return 0; }在输入时加入while()循环,便于输入多个case。同时使用数组转化为vector。再来分析分析下面的代码。
#include<iostream> #include<vector> using namespace std; int main() { int n; cin>>n; vector<int>v; int sum=0; while(n--) { int tmp; cin>>tmp; v.push_back(tmp); sum+=tmp; } int avg=sum/n; vector<int>sent; for(int i=0;i<v.size();i++) { if(v[i]-avg>0)sent.push_back(v[i]-avg); } int cnt=0; for(int i=0;i<sent.size();i++) { if(sent[i]%2==0)cnt+=sent[i]/2; else return -1; } return cnt; }(1)整体的逻辑就是少了如果平均值为小数时,也即不能整除时要直接返回-1。(2)循环输入多个case的情况没有考虑(3)代码结构模糊,没有将相关逻辑运算直接分离出去。(4)算法欠缺优化考虑。
所以此段代码进步空间还是很大。如下进步方向。
1.写代码逻辑分明,能够概括为一个函数最好单独写个函数。
2.输入格式、输出格式需要严格满足要求
3.算法的空间和时间的效率能优化尽量优化。
文章的最后,我发泄下。那位看不起我的同学,你等着,我一定会成为大神的,等着看吧。画风一转,我还是要认清自己的不足,查漏补缺,虚心学习,厚积薄发。
标签:
原文地址:http://blog.csdn.net/yutianxin123/article/details/52100678