百度 C++/PHP/GO 一面,已共享
面试官迟到了7分钟
说有三个环节,问项目,问八股(实际没问,害我这个java选手白白背了几天c++),写算法
首先开始自我介绍
拷打代码随想录的项目 raft kv数据库
问硕士做了什么项目
然后就开始手撕了
先写了个二叉树最大深度
int getCrossDepth(TreeNode* root){
if(root==NULL){
return 0;
}
return max(getCrossDepth(root->left), getCrossDepth(root->right)) + 1;
}
然后问遍历顺序是?(后序遍历)
二叉树交错最大深度 leetcode 1372.
int res;
int getCrossDepth(TreeNode* root, bool left){
if(root==NULL){
return 0;
}
int len;
if(left){
getCrossDepth(root->left, true);
len = getCrossDepth(root->right, false);
}
else{
len = getCrossDepth(root->left, true);
getCrossDepth(root->right, false);
}
res = max(res, len+1);
return len+1;
}
int getMaxCrossDepth(TreeNode* root) {
getCrossDepth(root->left, true);
getCrossDepth(root->right, false);
return res;
}
幽默面试官,非得问我为什么遍历两遍二叉树,遍历两遍你个头,明明就遍历了一遍,代码看不懂还面你马的
然后又说我为什么要传递根节点状态,不传递行不行,没想不出,我以为面试官要我像第一题一样只传节点,结果刚刚看leetcode别人都是传递长度,也没什么了不起的嘛,然后我试了一下自己的代码。
最后面试官一直在纠结我这个代码,煞笔面试官,一面完秒共享,自己水平不行还怪应聘者?