zoukankan      html  css  js  c++  java
  • 面试小记

    一、华为实习生面试(2017.4.22)

    笔试:三道编程题,只做对了1.3道。进入面试。

    一面:

    (1)问了自己常用的语言,说了C++,然后问了关于C++面向对象的一些问题,如封装,继承,多态啊等等。

    (2)关于从一个数据库解析xml文档,然后再存入一个数据库。这个系统怎么设计。本质上是一个生产者消费者问题,回答的一般。

    (3)又聊了一些自己做过的课题,主要是深度学习,没啥好说的。

     

    二面:

    (1)对于华为公司的文化有什么了解。(奋斗者,通过努力改变自己的生活等等)。

    (2)你觉得华为公司怎么样。

    (3)家庭情况

    (4)工作地点的选择,想要的职位。

    4.25日收到短信,通知通过面试,但是依旧没有得到offer,跪。。。。

    额。。。剧情反转了,5.16接到通知,获得华为实习offer。猜测应该是前面大佬有放弃的,现在备胎补上了,感谢华为!

     

    二、新氦数据实习生面试(2017.5.12)

    笔试:

    题目覆盖较广,计算机基础知识都有涉及,但比较简单。

    算法、数据结构、计算机网络、数据库、操作系统。

    主要偏重算法与数据结构,期中一个考察哈夫曼树的构造过程,另一个是编码问题,关于C++还是要熟练,这样才看得懂代码细节。

    最后两个编程题,我用的编程语言为:C++

    第一个,写一个二叉树的层次遍历,主要用到队列,这个简单。

    第二个,给出一组候选数字(C)和目标数字(T),找出C中所有的组合,使组合中数字的和为T。主要用到递归的思想,当时没想出来,没有给出完善的解法。

    这里贴出代码:

    class Solution {  
    public:  
        /** 
         * @param candidates: A list of integers 
         * @param target:An integer 
         * @return: A list of lists of integers 
         */  
           
           
           
           
    void countall(vector<vector<int> >& rt, vector<int>tem, vector<int> candidates, int tsum, int cur, int target)  
        {  
          
        if (tsum == target)  
        {  
            rt.push_back(tem);  
            return;  
      
        }  
        if(tsum>target)  
        return;  
      
      
        for(int i=cur;i<candidates.size();i++)  
        {  
        tem.push_back(candidates[i]);  
        tsum+=candidates[i];  
        countall(rt,tem,candidates,tsum,i,target);  
        tsum-=tem[tem.size()-1];  
        tem.pop_back();  
        }  
      
        }  
           
        vector<vector<int> > combinationSum(vector<int> &candidates, int target) {  
            // write your code here  
              
            vector<vector<int> > rt;  
            if(candidates.size()==0)  
            return rt;  
              
            vector<int> tem;  
            sort(candidates.begin(),candidates.end());  
           candidates.erase( unique( candidates.begin(), candidates.end() ), candidates.end() ); //删除掉candidate中的重复元素,因为重复元素会导致rt中有重复的解  
             
            countall(rt,tem,candidates,0,0,target);  
              
           
          
            return rt;  
              
        }  
    };  
    

     问题的一个变种给出一组候选数字(C)和目标数字(T),找出C中所有的组合,使组合中数字的和为T。C中每个数字在每个组合中只能使用一次。

    class Solution {
    public:
    	/**
    	 * @param num: Given the candidate numbers
    	 * @param target: Given the target number
    	 * @return: All the combinations that sum to target
    	 */
        vector<vector<int> > combinationSum2(vector<int> &num, int target) {
            // write your code here
            set<vector<int> > r; 
            vector<int> cur; 
            sort(num.begin(),num.end());
            combination(cur,num,0,0,target,r);
            vector<vector<int> > ret;
            copy(r.begin(),r.end(),back_inserter(ret));
            return ret;
        }
        void combination(vector<int> cur,vector<int> &num,int index,int curSum,int target,set<vector<int> >&ret)  
        {  
            if(curSum>target)  
                return;  
            if(curSum==target)  
            {  
                ret.insert(cur);  
                return;  
            }  
            if(index==num.size())  
                return;  
            combination(cur,num,index+1,curSum,target,ret);  
            cur.push_back(num[index]);  
            combination(cur,num,index+1,curSum+num[index],target,ret);  
        }  
    };
    

    技术面试:
    (1)卷积神经网络,卷积的作用,为什么要卷积。(过拟合)

    (2)牛顿法的优点和缺点。(凸函数,正定)

    (3)梯度消失,怎么来避免。(batch normalization)

    (4)上面贴出代码的那个编程题目。怎么解?

    原理,原理。算法基础,机器学习基础,数学基础,知其然,也要知其所以然,真正看懂。

    哎,人业余机器学习的都比我懂得多,看的深。。。ORZ。。

    综合面试:

    个人的基本情况,将来想做什么。

    自己的优势是什么,自我评价。

    为什么想做机器学习。

    自然语言处理,怎么来做。。。

    问问题:

    1.贵公司想招聘到什么样的应届生。

    2.贵公司未来对机器学习会怎么部署(因为自己想做机器学习的东西)。

    over

    总结:

    1.注重基础,需要学的东西很多,基本算法一定要会,算法基础好才会有下文。

    2.机器学习方面,自己在做的东西一定理解十分透彻,不能只知道个大概。

    继续努力吧!

    2017.5.12

  • 相关阅读:
    2.3 Nginx服务的启停控制
    2.1 Nginx服务器安装
    三、函数 (SUM、MIN、MAX、COUNT、AVG)
    二、检索语句 SELECT、ORDER BY、WHERE
    一、数据库、SQL简介
    一、单元测试框架的基本使用介绍
    2.4 Nginx服务器基础配置指令
    第十七章 程序管理与SELinux初探--进程、进程管理(ps、top)
    第十五章 例行性工作(crontab)--循环执行的例行性工作调度 crontab(定时任务)
    java多线程04----------final和static
  • 原文地址:https://www.cnblogs.com/Allen-rg/p/6846466.html
Copyright © 2011-2022 走看看