百度2015商务搜索实习面试总结

日期:2014-10-21


今天去面试某Du的商务搜索实习生,是一个学弟给内推的。面我的是一个校友,问题问的非常仔细,基本就是在给我上课(我的基础相当不好),总之收获颇丰。



面试流程

自我介绍
写一个单链表排序函数;假设单链表节点存放数据较大该怎样处理
Cpp vector 尾端插入元素复杂度,Java ArrayList 尾端插入元素复杂度
Java ArrayList, LinkList, TreeList 有什么差别
已知商场30天的销售记录,预估第31天的营业额
我的基础差到仅仅能问我这些问题。可惜基本没回答道他惬意。

相应解读
1.自我介绍
自我介绍就不用说了,但我描写叙述的让别人感觉似乎我在学校做的项目都是被迫的,这点不太好,下次注意


2.单链表排序

我写的是这种:

void bubblesort(Node* head)
{
        Node* ptr = head;
        int isChanged = 1;
        int tempData = 0;
        while (isChanged == 1)
        {
                isChanged = 0;
                while (ptr != NULL && ptr->next != NULL)
                {
                        if (ptr->data > ptr->next->data)
                        {
                                tempData = ptr->data;
                                ptr->data = ptr->next->data;
                                ptr->next->data = tempData;
                                isChanged = 1;
                        }
                        ptr = ptr->next;
                }
                if (isChanged == 0)
                {
                        break;
                }
                /*加上之后正确 ptr = head;*/
        }
}

回来执行測试了下。就完毕了一遍冒泡。检查了下。发现内层循环结束,指针没回到头指针head处。改动之后,貌似是OK了。不知道算对么···

假设节点存放的数据较大,那么就交换链表的指向。就是逻辑上换个位置即可。




3.vector
vector 尾端插入元素复杂度是啥???我当时蒙住了,毕竟没怎么用过Cpp,想着假设是O(1)怎么可能问这个问题,就回答了不知道。回来查了维基百科,还真的是O(1)。给自己跪了Orz


4.Java的各种 List
这个我就直接说不会。平时就用到过 ArrayList,另外两个都没用过。


5.机器学习
我给他描写叙述了一遍线性回归。非常显然他要的不是这个单一的答案。当他问我代价函数究竟表示什么。我就一直说是求得一个合适的theta。是的学习得到的曲线更符合想要的。总之就是吧线性回归的步骤都给他讲了一遍。最后还是他点到说求得的theta使得代价函数最小。同一时候告诫我以后看的时候自己动手画一画。把别人讲的消化掉。

这点我确实没有做到。

总结
面试肯定是悲剧了。但他感觉人非常好。等于是一直在给我指导。结束后他给了我一些建议:

把心态放低。端正学习的态度。


学好一门语言并熟练掌握,要明确你写的程序中。为什么用这个数据结构而不用同类的其它结构,相比之下有什么优缺点,各种操作的复杂度是什么,都要了然于胸。
离校招另一段时间,能够在学校好好看看书。《算法导论》是要看的。


机器学习这方面,课程还继续跟着学。同一时候能够看看关于这方面的书,再有就是《概率论》、《最优化》。以及要了解一些分布式计算的内容(如Hadoop)。
感想
果然是深度不够。寻常仅仅会在各种API之间徘徊。确实要有一门核心技术作为支撑了。定下心。敲代码多思考,再回归ACM刷题时代,看公开课的时候不用太急着拿证。一定要学到自己手里。


给自己一个目标,下次在有面试总结,上面出现的问题不能再有!时间还有,努力ing

原文地址:https://www.cnblogs.com/blfbuaa/p/7070864.html