由于我介绍自己对机器学习和统计学习感兴趣,所以面试官就让我说了下我了解哪些算法,最后让我说一个最熟悉的。我选择说SVM
1、介绍SVM
什么是支持向量机,怎么处理线性不可分(软间隔)、程序怎么优化(SMO)
2、线性时间内排序
基数排序
3、爬楼梯
f(n)=f(n-1)+f(n-2)
4、N个数中选取前m个
O(Nlogm),m大根堆
5、判断平衡二叉树
使用递归
6、两个栈实现一个队列
说一下这道题,当时我把题目理解为,数据使源源不断的过来,要保证先到先出,所以回答问题时思路和面试官的不一样。这也是我为什么想了半天也不知道如何处理。因为数据不断的来,且不可以控制它进入栈的时间的话,真的很难用两个栈实现一个队列。看了下面这个链接的回答,才知道这个数据流使可控,即它要事先判断stack1和stack2的状态才能决定就是否加入。我当时就陷入一个想法:如果stack1中的数据正在往stack2中倒入数据怎么办?这时数据流过来了,是放在stack1还是stack2里?所以不知道怎么回答。现在才知道这个数据流是可以等待的。
推荐看一下
http://www.cnblogs.com/wanghui9072229/archive/2011/11/22/2259391.html
7、实现pow(x,n)
8、面向对象的特点