前几天参加了百度校招2016的计算机视觉笔试,虽然是打酱油去的,旨在了解这些大公司招聘时候的笔试具体是考些什么内容。但是草草做了些笔记,再不整理一下,就全忘记了!因为全程摄像头监控,只是记了一些关键词,现在整理如下。
笔试分为四个部分:企业文化认知测评15道、简单题3道、算法程序设计题3道和系统设计题2选1,时间为130分钟。
其中第一部分企业文化认知评测均为选择题,主要是对百度的认知问题,常识知识。
其中第二部分为简答题:
1. 分别采用线性表、二叉平衡树和哈希表存储数据,请分析他们各有什么优劣?
2. 选择合适的排序算法:
1)很少的元素
2)几乎有序的元素
3)关注最坏的情况
4)希望能够得到较好平均情况下的
5)元素是从一个密集集合中取出
6)实现最简单,尽可能少的写代码
3. 阅读代码,说明输出的含义并找错:
1)写出代码运行前7行并说明该数列含义;
2)代码中是否有安全隐患?原因是?
#include <stdio.h>
#include<string.h>
Const int MAX_LEN=128;
Const int MAX_LINE=20;
Int main(int argc,char* argv[])
{
Char str[MAX_LEN]=”1”;
Char tmp_str[MAX_LEN]=””;
Char buf[MAX_LEN]=””;
Printf(“%s\n”,str);
For(int line=1;line<=MAX_LINE;++line){
Strcpy(tmp_str,str);
Str[0]=’\0’;
For (int i=0;tmp_str[i]!=0;++i){
Char ch=tmp_str[i];
Int count=1;
For(:tmp_str[i+1]==tmp_str[i];++i){
++cout;
}
Sprint(buf,”%d%c”,count,ch);
Strcat(str,buf);
}
Printf(“%s\n”,str);
}
Return 0;
}
其中第三部分为算法程序设计题
1.有一串首位相连的珠子,总共m颗,每颗珠子都有自己的颜色,全部颜色共有n(n<=10),现在要在里面截取一段,要求包含所有不同的颜色,并且长度越短越好。求如何截取。请详细描述算法思路,可以用伪代码来辅助描述。并求得时间复杂度和空间复杂度!
2.二重哥德巴赫猜想:每一个不小于6的偶数可以表示为两个素数之和。请用你熟悉的语言编写一个函数,输出6—100000(包含6和100000)内所有偶数可以表示为哪两个素数之和。如果一个偶数有多重表示方式,输出一种即可。要求:给出完整代码,在达到目标情况下尽量高效,简洁。
3.两个节点之间有若干节点,请在入口节点到出口节点插入若干节点,使得从入口节点到出口节点经过任意段路径周长相同。设计算法思路,必要时可以用伪代码辅助描述。
其中第四部分系统设计题2选1均为机器学习类题目,其中:
1. 关于支持向量机的(Support Vector Machine,SVM)的题目(这个算法是90年代提出的统计学机器学习算法,但是我一直都没理解,故我选择了第二个。)大致有如下几个小问:
1) 线性SVM原始问题的优化问题是什么?其对偶问题是什么?
2) 求解原始问题和对偶问题常用的优化算法有哪些?
3) SVM如何处理多分类问题?
4) SVM和logistic regression的异同,如何统一成一个优化问题形式?
5) 线性SVM和非线性(KERNEL)SVM与神经网络的关系?
2.关于logistic回归,(这个函数为复杂回归函数,又被称为逻辑回归,或者sigmoid回归,在深度学习中为激活函数,应用非常广泛,除此之外还有softmax回归函数)大致有如下几个问题:
1)Logistic回归公式;
2)logistic函数的表达式与其导数;
3)logistic的loss及其更新公式。
好东西一起分享一下吧!么么哒。。。。。