这个学期找了一些实习,现在将这些实习经历进行汇种。为了今后找工作或者为广大IT从业人员提供些许的借鉴。
百度自然语言处理部门:
主要是问问了对于C/C++语言的掌握程度,以及算法和机器学习的了解。
1.const int *a
2.int const *a
上例中两者的区别
const int *a是指指向的对象时const对象,当时指针的值是可以更改的。而int const *a是指指针式const,指针不可变,所以应该在声明的时候就初始化(基本上这种在平常的编程中用不到)。
1.int a[10]
2.int *a=malloc(10)
上述中的分配方式有什么区别?
第一种是分配在栈上,第二种是分配在堆上。栈和堆有什么区别?
栈一般存储局部变量,由编译器进行内存的分配,由编译器进行管理;堆一般是由程序员进行动态分配内存,需要程序员自动进行释放内存。
谈谈对于机器学习的理解?
我主要说说了我平时都用了哪些算法,比如AdaBoost,决策树等。主要说了AdaBoost算法的原理。之后他问了我AdaBoost算法有哪些优势,我说算法速度快,不过拟合。他又问我为什么不容易过拟合,这个我不太清楚,没有回答上来。
对于一组数,其中有一个数出现3次,其他的数均出现2次,问如何找到那个出现3次的数?刚开始说了个利用map方法,之后问问了复杂度。快速的算法也没有想出来,应该可以用哈希来解决这个问题,大家可以上网上查查。之后让我说了说快排。并且写了些快排的代码。感觉快排在面试的过程中考的很多。这个是必须要掌握的。