2016年华为 软开实习生招聘面经(机试面试)

来源:互联网 发布:端游 页游区别 知乎 编辑:程序博客网 时间:2024/06/01 03:59

转载请注明出处:http://blog.csdn.net/zhoubin1992/article/details/46562535

华为在厦门的实习生招聘来的很晚,其他地区3,4月份就开始了。不过华为效率很高,一天机试,一天面试解决战斗。这次的实习生招聘和以往有些不同,现在分享下我的机试面试经历,希望对后来人有些帮助~


2015年6月16日 机试+性格测试

上午先是性格测试,这块官方推荐35分钟完成,所以大家做题时也没啥好纠结的,36题快点完事吧,按照自身情况走,别前后矛盾就没啥大问题。
然后就是机试,3道题,这次厦门实习生招聘挺简单的。


第一题:(100分)
10个数(0~9),选出的3个数(不能重复),使得组成的3位数最大。
第二题:奇偶排序(200分)
输入一组乱序的数,先取出奇数从大到小排序,然后取出偶数从小到大排序输出。
第三题:最大子方阵(300分)
给你一个N*M的矩阵,每个位置的值是0或1,求一个面积最大的子矩阵,这个矩阵必须是一个正方形,且里面只能由1构成,输出最大的正方形边长。其中n,m<=400;


方法:

第一题,用数组,然后判断重复,我是用map,利用key自动排序而且不重复,最后输出最后3个key就行,5分钟就搞定。
第二题,输入一个数就判断是不是奇数,是存入一个vector,不是存入另一个。然后然后分别sort排序就可以了。
第三题,动态规划,这题我以前碰到过,不过问题比这个复杂些。暴力是肯定不能的。
代码:

#include<iostream>using namespace std;int main(){    int n,m;    cin>>n>>m;    int a[400][400];    for(int q=0;q<n;q++)        for(int w=0;w<m;w++)        {            cin>>a[q][w];        }        int max=-1;          for (int i=1;i<n;++i)          {            for (int j=1;j<m;++j)              {                if (a[i][j] == 1){                      int min=a[i-1][j-1];                      if (min>a[i][j-1])                         min = a[i][j-1];                                    if (min>a[i-1][j])                         min = a[i-1][j];                      a[i][j] = min + 1;                      if (max<a[i][j]){                          max = a[i][j];                       }                  }            }           }        cout<<max<<endl;        return 0;}

再分享一种解法:
http://blog.csdn.net/yangnanhai93/article/details/42008135


三题不到50分钟就做完了。不过没拿满分,第二题第二个测试用测没过扣了50分,显示异常数据,还不是失败,不知道怎么解决。想了会儿,还是不行,不管了提交了。
8点30开始性格测试,到了12点15结束机试,时间真的很充裕。不过官方是机试2小时。
中午刚睡下,2点左右收到第二天面试通知。后来了解到有些同学3,4百分的都没有接到面试通知。并不是网上说的只要做一题就给面试。这次实习生名额较少,进面试的不是太多。机试+简历+性格测试综合评价后决定面试名额。HR在机试前提醒大家千万不要作弊,机器会自动判卷,如果雷同直接0分。


建议:

  1. 时间足够,机房人比较多,冷静下来慢慢做。
  2. 提前做几套机试题,找找感觉。分尽量往上提,机试表现面试官是知道的。
  3. 灵活运用C++的STL或java的集合。

2015年6月17日 一面技术面+二面HR面

华为技术岗的群面在14年就取消了,只有两轮面试,福音啊。
刚到面试地点先交简历,没多久就被叫去面试了,首先自我介绍,那边面试官边看简历,完后开始了解我擅长什么,我说java比较熟,问了gc运作流程和底层实现。然后没问java了,也没问项目。哭,准备了一天的项目。接着开始问C/C++基础知识,计算机网络,操作系统。涉及的问题:sizeof,strlen,指针,TCP/UDP,进程通信等。都是很基础的问题easy,有些会深入问下去,直到你不会为止。再就是Linux相关的命令,通信之类,这部分答的不好。回过来又问STL的map原理和优缺点。我感觉面试官是底层开发的。
在休息室等了7,8分钟,就进去二面(hr面),整个流程比较轻松,还是先自我介绍,然后问Android的优缺点,分析原因;SQlite的性能分析。接着问工作上的问题,了解个人态度,实习时间等等。
出来之后问了HR,五个工作日会给答复。整个过程中,华为的hr超级nice,有什么问题可以及时问她们,面试过程很舒适。感谢你们。


建议:

  1. 根据我看的面经和这次,华为一面注重C语言基础知识,网络,操作系统。需要基础扎实。
  2. 还是要准备准备项目,以往都会问的。后来问了同学的面试,他的面试官只问项目,不问基础。
7 2
原创粉丝点击