今天回jd 面试了,面了两面,感觉还可以,但是这也暴露出自己coding能力确实不行的问题。
首先说coding吧
第一面只有一道题,leetcode原题,可以看我博客
http://blog.csdn.net/gdmmzmj/article/details/68485327
第二面面了快排
// quick sort
template <typename DataType>
void quick_sort(vector<DataType>& v, int first, int last){
if(first>=last)
return;
DataType pivot = v[first];
// 小的换到左边,大的换到右边
int l=first;
for(int r=l+1;r<=last;r++){
if(v[r]<=pivot)
swap(v[++l],v[r]); // l之前的都是小的
}
int pos = l;
swap(v[first],v[pos]);
// 递归
quick_sort(v,first,pos-1);
quick_sort(v,pos+1,last);
}
template <typename DataType>
void quick_sort(vector<DataType>& v){
quick_sort(v,0,(int)v.size()-1);
}
还有树的深度
int treedepth(TreeNode* root){
if(!root) return 0;
int depth=max(dfs(root->left),dfs(root->right))+1;
return depth;
}
int dfs(TreeNode* root){
if(!root) return 0;
return max(dfs(root->left),dfs(root->right))+1;
}
第一面
零零散散问了一些。
比如OCR里面的图片,比如京东研发四个字,固定stepsize划分为几个字再抽取特征好,还是整体抽特征好。我觉得是整体好,因为balabala… 面试官说他们试的确实是这样。
还有c++知识
void sort(vector<int> v)
假如v是个很大的vector,那么在实际工程中应该怎么修改函数接口。我说加const,和&引用。应该是正确的,按照反应来看。
然后是一些项目问题,就没啥了。
第二面面试官没怎么做过deeplearning,主要面试机器学习,就是李航那本书。
就是推导SVM,写lr的loss function,有意思的是问了lr里面公式为啥用e,我觉得是跟生物学上有关,也跟log底数是e有关,具体不清楚。
决策树也问了,没回答上决策树做回归的方法,还有决策树算法的种类。
问了一下linux操作,替代top查看内存的指令。另外,有没有自己写过shell脚本,这个问题在各个面试中至少被问了三次。
大概的情况就是这样了,后面老大面就是随便聊聊,等hr了说。