面试题目回忆

面试题目回忆

  刚刚结束了历时一个月找工作的历程,其中有挫折、有成长也有收获。收获的不仅仅是工作机会,对如何换工作有了新的认识。当然也有不少有趣的面试题目,记录如下,希望对在找工作的人一些帮助。

1.         编程题目:有一个字母(A到Z)组成的数组,可以按照如下方式进行消除1)连续相同的两个或者三个字母可以消除,例如AAA可以直接去除。2)连续相邻的三个字母可以去除,例如ABC可以直接去除。给定一个序列,问是否可以完全消除?消除的方式有几种?(搜索)

2.         二分查找相关,有序整数数组,右移K位,K不知道,问如何找到最小值?如何查找给定数值。

3.         杨氏矩阵查找,给定一个二维整数矩阵(m*n),每一行和每一列都递增,如何查找给定元素?(有比O(m+n)更优的算法吗?)

4.         有一个0或者1数据流,数据流长度未知,统计后N=1000位中,0的个数。采用队列保存后N位01数据,并记录0的个数。(深入讨论如何基于数组实现队列,针对本题如何利用整数数组模拟实现队列,主要是节省空间)

5.         从数据流中随机选择K个数据,保证每个数据选择的概率相同。并且证明。

6.         任务的均匀调度。有N个任务,每个任务有一个权重,权重越高表明调用频率越高,给出一个调用序列,实现均匀调度。例如有两个任务AB,其中A的权重为2,B的权重为1,则合理的调度为AABAABAAB。。。,给出精确算法(面试官提示是否有非精确,通过概率模拟算法)思路,假设三个任务A-5,B-2,C-1,概率模拟的思路是随机产生1到8的数,如果<=1,调度C,<=3调度B,<=8调度A。精确算法思路是计算每一个任务的调用间隔,选择权重最小的任务C,认为它的调用间隔为A:0.2,B:0.5,C:1.每次从调用周期中选择最小的进行调用,然后改任务累加该周期,反复进行。

7.         编写程序:C++中,给定带有注释的源程序,输出去掉程序中的注释。注释的方式包括“//”和“/**/”。题目中的陷阱在于程序中的字符串中可能带有注释符号,需要特殊考虑。

8.         编程实现计算字符串之间的编辑距离。

9.         编程实现N*N方阵的乘法,其中每一行大约有10%的有效数据,其他为0.设计矩阵结构并给出计算乘法的算法。

10.     二叉树的各种遍历,递归、非递归、O(1)空间的遍历等

11.     分布式排序算法,对于给定的Key-Value对进行排序,要求有效利用并行化。思路是划分。

12.     概率题:有一个8个抽屉的柜子和一份文件,该文件有80%的可能存在于柜子中,如果存在柜子中可能会出现在8个抽屉中的任何一个。现在打开其中一个抽屉没有发现该文件,问该文件存在于另外7个抽屉中的概率。(贝叶斯公式运用)

13.     图算法:两点间的最短路径计算。

14.     编程题:消除空格,给定一个字符串,要求去掉开头和结尾的空格,如果字符中间有多个空格则替换为1个。

15.     算法题目:在一个平面上,有一些矩形,矩形的边分别和X轴、Y轴平行,去掉被完全包含的矩形。给出最优算法。

16.     给定一个数字N,找到满足如下条件的X和Y,使得1/N=1/X+1/Y.

17.     给定一个100W位的数字,求其模9的结果。

18.     N个无序的数中找M大的数,分析各种方法的使用范围。

19.     给出一个算法计算圆周率π,要求精确到1000位。

20.     给定两个有序数组,找其中位数。

21.     专业技术相关

  • Kmeans算法如何实现?如何并行化?(4个优化点)如何进行效果优化?
  • 常见机器学习模型推断。LR、SVM、NB等,如何防止过拟合?正则化的方法有哪些?
  • 梯度方法原理?EM算法原理
  •  PLSA和LDA区别?
  • simhash算法原理
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值